blob: c78abfadd2bc91416fa20adc9fae7b2e1916020e [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
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +0200221#define invalid_arguments_type 1143
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300222#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
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +0200228#define invalid_primary_type 1150 // Left-recursive
229#define invalid_comprehension_type 1151
230#define invalid_dict_comprehension_type 1152
231#define invalid_parameters_type 1153
232#define invalid_lambda_parameters_type 1154
233#define invalid_star_etc_type 1155
234#define invalid_lambda_star_etc_type 1156
235#define invalid_double_type_comments_type 1157
236#define invalid_with_item_type 1158
237#define invalid_for_target_type 1159
238#define invalid_group_type 1160
239#define invalid_import_from_targets_type 1161
240#define _loop0_1_type 1162
241#define _loop0_2_type 1163
242#define _loop0_4_type 1164
243#define _gather_3_type 1165
244#define _loop0_6_type 1166
245#define _gather_5_type 1167
246#define _loop0_8_type 1168
247#define _gather_7_type 1169
248#define _loop0_10_type 1170
249#define _gather_9_type 1171
250#define _loop1_11_type 1172
251#define _loop0_13_type 1173
252#define _gather_12_type 1174
253#define _tmp_14_type 1175
254#define _tmp_15_type 1176
255#define _tmp_16_type 1177
256#define _tmp_17_type 1178
257#define _tmp_18_type 1179
258#define _tmp_19_type 1180
259#define _tmp_20_type 1181
260#define _tmp_21_type 1182
261#define _loop1_22_type 1183
262#define _tmp_23_type 1184
263#define _tmp_24_type 1185
264#define _loop0_26_type 1186
265#define _gather_25_type 1187
266#define _loop0_28_type 1188
267#define _gather_27_type 1189
268#define _tmp_29_type 1190
269#define _tmp_30_type 1191
270#define _loop0_31_type 1192
271#define _loop1_32_type 1193
272#define _loop0_34_type 1194
273#define _gather_33_type 1195
274#define _tmp_35_type 1196
275#define _loop0_37_type 1197
276#define _gather_36_type 1198
277#define _tmp_38_type 1199
278#define _loop0_40_type 1200
279#define _gather_39_type 1201
280#define _loop0_42_type 1202
281#define _gather_41_type 1203
282#define _loop0_44_type 1204
283#define _gather_43_type 1205
284#define _loop0_46_type 1206
285#define _gather_45_type 1207
286#define _tmp_47_type 1208
287#define _loop1_48_type 1209
288#define _tmp_49_type 1210
289#define _tmp_50_type 1211
290#define _tmp_51_type 1212
291#define _tmp_52_type 1213
292#define _tmp_53_type 1214
293#define _loop0_54_type 1215
294#define _loop0_55_type 1216
295#define _loop0_56_type 1217
296#define _loop1_57_type 1218
297#define _loop0_58_type 1219
298#define _loop1_59_type 1220
299#define _loop1_60_type 1221
300#define _loop1_61_type 1222
301#define _loop0_62_type 1223
302#define _loop1_63_type 1224
303#define _loop0_64_type 1225
304#define _loop1_65_type 1226
305#define _loop0_66_type 1227
306#define _loop1_67_type 1228
307#define _loop1_68_type 1229
308#define _tmp_69_type 1230
309#define _loop0_71_type 1231
310#define _gather_70_type 1232
311#define _loop1_72_type 1233
312#define _loop0_74_type 1234
313#define _gather_73_type 1235
314#define _loop1_75_type 1236
315#define _loop0_76_type 1237
316#define _loop0_77_type 1238
317#define _loop0_78_type 1239
318#define _loop1_79_type 1240
319#define _loop0_80_type 1241
320#define _loop1_81_type 1242
321#define _loop1_82_type 1243
322#define _loop1_83_type 1244
323#define _loop0_84_type 1245
324#define _loop1_85_type 1246
325#define _loop0_86_type 1247
326#define _loop1_87_type 1248
327#define _loop0_88_type 1249
328#define _loop1_89_type 1250
329#define _loop1_90_type 1251
330#define _loop1_91_type 1252
331#define _loop1_92_type 1253
332#define _tmp_93_type 1254
333#define _loop0_95_type 1255
334#define _gather_94_type 1256
335#define _tmp_96_type 1257
336#define _tmp_97_type 1258
337#define _tmp_98_type 1259
338#define _tmp_99_type 1260
339#define _loop1_100_type 1261
340#define _tmp_101_type 1262
341#define _tmp_102_type 1263
342#define _loop0_104_type 1264
343#define _gather_103_type 1265
344#define _loop1_105_type 1266
345#define _loop0_106_type 1267
346#define _loop0_107_type 1268
347#define _loop0_109_type 1269
348#define _gather_108_type 1270
349#define _tmp_110_type 1271
350#define _loop0_112_type 1272
351#define _gather_111_type 1273
352#define _loop0_114_type 1274
353#define _gather_113_type 1275
354#define _loop0_116_type 1276
355#define _gather_115_type 1277
356#define _loop0_118_type 1278
357#define _gather_117_type 1279
358#define _loop0_119_type 1280
359#define _loop0_121_type 1281
360#define _gather_120_type 1282
361#define _tmp_122_type 1283
362#define _loop0_124_type 1284
363#define _gather_123_type 1285
364#define _loop0_126_type 1286
365#define _gather_125_type 1287
366#define _tmp_127_type 1288
367#define _loop0_128_type 1289
368#define _loop0_129_type 1290
369#define _loop0_130_type 1291
370#define _tmp_131_type 1292
371#define _tmp_132_type 1293
372#define _loop0_133_type 1294
373#define _tmp_134_type 1295
374#define _loop0_135_type 1296
375#define _tmp_136_type 1297
376#define _tmp_137_type 1298
377#define _tmp_138_type 1299
378#define _tmp_139_type 1300
379#define _tmp_140_type 1301
380#define _tmp_141_type 1302
381#define _tmp_142_type 1303
382#define _tmp_143_type 1304
383#define _tmp_144_type 1305
384#define _tmp_145_type 1306
385#define _tmp_146_type 1307
386#define _tmp_147_type 1308
387#define _tmp_148_type 1309
388#define _tmp_149_type 1310
389#define _tmp_150_type 1311
390#define _tmp_151_type 1312
391#define _tmp_152_type 1313
392#define _loop1_153_type 1314
393#define _loop1_154_type 1315
394#define _tmp_155_type 1316
395#define _tmp_156_type 1317
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100396
397static mod_ty file_rule(Parser *p);
398static mod_ty interactive_rule(Parser *p);
399static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700400static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100401static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700402static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100403static asdl_seq* statements_rule(Parser *p);
404static asdl_seq* statement_rule(Parser *p);
405static asdl_seq* statement_newline_rule(Parser *p);
406static asdl_seq* simple_stmt_rule(Parser *p);
407static stmt_ty small_stmt_rule(Parser *p);
408static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300409static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100410static AugOperator* augassign_rule(Parser *p);
411static stmt_ty global_stmt_rule(Parser *p);
412static stmt_ty nonlocal_stmt_rule(Parser *p);
413static stmt_ty yield_stmt_rule(Parser *p);
414static stmt_ty assert_stmt_rule(Parser *p);
415static stmt_ty del_stmt_rule(Parser *p);
416static stmt_ty import_stmt_rule(Parser *p);
417static stmt_ty import_name_rule(Parser *p);
418static stmt_ty import_from_rule(Parser *p);
419static asdl_seq* import_from_targets_rule(Parser *p);
420static asdl_seq* import_from_as_names_rule(Parser *p);
421static alias_ty import_from_as_name_rule(Parser *p);
422static asdl_seq* dotted_as_names_rule(Parser *p);
423static alias_ty dotted_as_name_rule(Parser *p);
424static expr_ty dotted_name_rule(Parser *p);
425static stmt_ty if_stmt_rule(Parser *p);
426static stmt_ty elif_stmt_rule(Parser *p);
427static asdl_seq* else_block_rule(Parser *p);
428static stmt_ty while_stmt_rule(Parser *p);
429static stmt_ty for_stmt_rule(Parser *p);
430static stmt_ty with_stmt_rule(Parser *p);
431static withitem_ty with_item_rule(Parser *p);
432static stmt_ty try_stmt_rule(Parser *p);
433static excepthandler_ty except_block_rule(Parser *p);
434static asdl_seq* finally_block_rule(Parser *p);
435static stmt_ty return_stmt_rule(Parser *p);
436static stmt_ty raise_stmt_rule(Parser *p);
437static stmt_ty function_def_rule(Parser *p);
438static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100439static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100440static arguments_ty params_rule(Parser *p);
441static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700442static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100443static SlashWithDefault* slash_with_default_rule(Parser *p);
444static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100445static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700446static arg_ty param_no_default_rule(Parser *p);
447static NameDefaultPair* param_with_default_rule(Parser *p);
448static NameDefaultPair* param_maybe_default_rule(Parser *p);
449static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100450static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700451static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100452static asdl_seq* decorators_rule(Parser *p);
453static stmt_ty class_def_rule(Parser *p);
454static stmt_ty class_def_raw_rule(Parser *p);
455static asdl_seq* block_rule(Parser *p);
456static asdl_seq* expressions_list_rule(Parser *p);
457static expr_ty star_expressions_rule(Parser *p);
458static expr_ty star_expression_rule(Parser *p);
459static asdl_seq* star_named_expressions_rule(Parser *p);
460static expr_ty star_named_expression_rule(Parser *p);
461static expr_ty named_expression_rule(Parser *p);
462static expr_ty annotated_rhs_rule(Parser *p);
463static expr_ty expressions_rule(Parser *p);
464static expr_ty expression_rule(Parser *p);
465static expr_ty lambdef_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700466static arguments_ty lambda_params_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100467static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700468static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100469static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
470static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100471static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700472static arg_ty lambda_param_no_default_rule(Parser *p);
473static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
474static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
475static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100476static expr_ty disjunction_rule(Parser *p);
477static expr_ty conjunction_rule(Parser *p);
478static expr_ty inversion_rule(Parser *p);
479static expr_ty comparison_rule(Parser *p);
480static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
481static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
482static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
483static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
484static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
485static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
486static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
487static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
488static CmpopExprPair* in_bitwise_or_rule(Parser *p);
489static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
490static CmpopExprPair* is_bitwise_or_rule(Parser *p);
491static expr_ty bitwise_or_rule(Parser *p);
492static expr_ty bitwise_xor_rule(Parser *p);
493static expr_ty bitwise_and_rule(Parser *p);
494static expr_ty shift_expr_rule(Parser *p);
495static expr_ty sum_rule(Parser *p);
496static expr_ty term_rule(Parser *p);
497static expr_ty factor_rule(Parser *p);
498static expr_ty power_rule(Parser *p);
499static expr_ty await_primary_rule(Parser *p);
500static expr_ty primary_rule(Parser *p);
501static expr_ty slices_rule(Parser *p);
502static expr_ty slice_rule(Parser *p);
503static expr_ty atom_rule(Parser *p);
504static expr_ty strings_rule(Parser *p);
505static expr_ty list_rule(Parser *p);
506static expr_ty listcomp_rule(Parser *p);
507static expr_ty tuple_rule(Parser *p);
508static expr_ty group_rule(Parser *p);
509static expr_ty genexp_rule(Parser *p);
510static expr_ty set_rule(Parser *p);
511static expr_ty setcomp_rule(Parser *p);
512static expr_ty dict_rule(Parser *p);
513static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700514static asdl_seq* double_starred_kvpairs_rule(Parser *p);
515static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100516static KeyValuePair* kvpair_rule(Parser *p);
517static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300518static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100519static expr_ty yield_expr_rule(Parser *p);
520static expr_ty arguments_rule(Parser *p);
521static expr_ty args_rule(Parser *p);
522static asdl_seq* kwargs_rule(Parser *p);
523static expr_ty starred_expression_rule(Parser *p);
524static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
525static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
526static expr_ty star_targets_rule(Parser *p);
527static asdl_seq* star_targets_seq_rule(Parser *p);
528static expr_ty star_target_rule(Parser *p);
529static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300530static expr_ty single_target_rule(Parser *p);
531static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100532static asdl_seq* del_targets_rule(Parser *p);
533static expr_ty del_target_rule(Parser *p);
534static expr_ty del_t_atom_rule(Parser *p);
535static asdl_seq* targets_rule(Parser *p);
536static expr_ty target_rule(Parser *p);
537static expr_ty t_primary_rule(Parser *p);
538static void *t_lookahead_rule(Parser *p);
539static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +0200540static void *invalid_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300541static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100542static void *invalid_named_expression_rule(Parser *p);
543static void *invalid_assignment_rule(Parser *p);
Pablo Galindo102ca522020-06-28 00:40:41 +0100544static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300545static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100546static void *invalid_block_rule(Parser *p);
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +0200547static void *invalid_primary_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100548static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700549static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100550static void *invalid_parameters_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700551static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300552static void *invalid_star_etc_rule(Parser *p);
553static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700554static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300555static void *invalid_with_item_rule(Parser *p);
556static void *invalid_for_target_rule(Parser *p);
557static void *invalid_group_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100558static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100559static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700560static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100561static asdl_seq *_loop0_4_rule(Parser *p);
562static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700563static asdl_seq *_loop0_6_rule(Parser *p);
564static asdl_seq *_gather_5_rule(Parser *p);
565static asdl_seq *_loop0_8_rule(Parser *p);
566static asdl_seq *_gather_7_rule(Parser *p);
567static asdl_seq *_loop0_10_rule(Parser *p);
568static asdl_seq *_gather_9_rule(Parser *p);
569static asdl_seq *_loop1_11_rule(Parser *p);
570static asdl_seq *_loop0_13_rule(Parser *p);
571static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100572static void *_tmp_14_rule(Parser *p);
573static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700574static void *_tmp_16_rule(Parser *p);
575static void *_tmp_17_rule(Parser *p);
576static void *_tmp_18_rule(Parser *p);
577static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100578static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700579static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100580static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700581static void *_tmp_23_rule(Parser *p);
582static void *_tmp_24_rule(Parser *p);
583static asdl_seq *_loop0_26_rule(Parser *p);
584static asdl_seq *_gather_25_rule(Parser *p);
585static asdl_seq *_loop0_28_rule(Parser *p);
586static asdl_seq *_gather_27_rule(Parser *p);
587static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300588static void *_tmp_30_rule(Parser *p);
589static asdl_seq *_loop0_31_rule(Parser *p);
590static asdl_seq *_loop1_32_rule(Parser *p);
591static asdl_seq *_loop0_34_rule(Parser *p);
592static asdl_seq *_gather_33_rule(Parser *p);
593static void *_tmp_35_rule(Parser *p);
594static asdl_seq *_loop0_37_rule(Parser *p);
595static asdl_seq *_gather_36_rule(Parser *p);
596static void *_tmp_38_rule(Parser *p);
597static asdl_seq *_loop0_40_rule(Parser *p);
598static asdl_seq *_gather_39_rule(Parser *p);
599static asdl_seq *_loop0_42_rule(Parser *p);
600static asdl_seq *_gather_41_rule(Parser *p);
601static asdl_seq *_loop0_44_rule(Parser *p);
602static asdl_seq *_gather_43_rule(Parser *p);
603static asdl_seq *_loop0_46_rule(Parser *p);
604static asdl_seq *_gather_45_rule(Parser *p);
605static void *_tmp_47_rule(Parser *p);
606static asdl_seq *_loop1_48_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300607static void *_tmp_49_rule(Parser *p);
608static void *_tmp_50_rule(Parser *p);
609static void *_tmp_51_rule(Parser *p);
610static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300611static void *_tmp_53_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300612static asdl_seq *_loop0_54_rule(Parser *p);
613static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300614static asdl_seq *_loop0_56_rule(Parser *p);
615static asdl_seq *_loop1_57_rule(Parser *p);
616static asdl_seq *_loop0_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700617static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300618static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300619static asdl_seq *_loop1_61_rule(Parser *p);
620static asdl_seq *_loop0_62_rule(Parser *p);
621static asdl_seq *_loop1_63_rule(Parser *p);
622static asdl_seq *_loop0_64_rule(Parser *p);
623static asdl_seq *_loop1_65_rule(Parser *p);
624static asdl_seq *_loop0_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300625static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300626static asdl_seq *_loop1_68_rule(Parser *p);
627static void *_tmp_69_rule(Parser *p);
628static asdl_seq *_loop0_71_rule(Parser *p);
629static asdl_seq *_gather_70_rule(Parser *p);
630static asdl_seq *_loop1_72_rule(Parser *p);
631static asdl_seq *_loop0_74_rule(Parser *p);
632static asdl_seq *_gather_73_rule(Parser *p);
633static asdl_seq *_loop1_75_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700634static asdl_seq *_loop0_76_rule(Parser *p);
635static asdl_seq *_loop0_77_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300636static asdl_seq *_loop0_78_rule(Parser *p);
637static asdl_seq *_loop1_79_rule(Parser *p);
638static asdl_seq *_loop0_80_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700639static asdl_seq *_loop1_81_rule(Parser *p);
640static asdl_seq *_loop1_82_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300641static asdl_seq *_loop1_83_rule(Parser *p);
642static asdl_seq *_loop0_84_rule(Parser *p);
643static asdl_seq *_loop1_85_rule(Parser *p);
644static asdl_seq *_loop0_86_rule(Parser *p);
645static asdl_seq *_loop1_87_rule(Parser *p);
646static asdl_seq *_loop0_88_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700647static asdl_seq *_loop1_89_rule(Parser *p);
648static asdl_seq *_loop1_90_rule(Parser *p);
649static asdl_seq *_loop1_91_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300650static asdl_seq *_loop1_92_rule(Parser *p);
651static void *_tmp_93_rule(Parser *p);
652static asdl_seq *_loop0_95_rule(Parser *p);
653static asdl_seq *_gather_94_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700654static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700655static void *_tmp_97_rule(Parser *p);
656static void *_tmp_98_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300657static void *_tmp_99_rule(Parser *p);
658static asdl_seq *_loop1_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300659static void *_tmp_101_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300660static void *_tmp_102_rule(Parser *p);
661static asdl_seq *_loop0_104_rule(Parser *p);
662static asdl_seq *_gather_103_rule(Parser *p);
663static asdl_seq *_loop1_105_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700664static asdl_seq *_loop0_106_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300665static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100666static asdl_seq *_loop0_109_rule(Parser *p);
667static asdl_seq *_gather_108_rule(Parser *p);
668static void *_tmp_110_rule(Parser *p);
669static asdl_seq *_loop0_112_rule(Parser *p);
670static asdl_seq *_gather_111_rule(Parser *p);
671static asdl_seq *_loop0_114_rule(Parser *p);
672static asdl_seq *_gather_113_rule(Parser *p);
673static asdl_seq *_loop0_116_rule(Parser *p);
674static asdl_seq *_gather_115_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300675static asdl_seq *_loop0_118_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100676static asdl_seq *_gather_117_rule(Parser *p);
677static asdl_seq *_loop0_119_rule(Parser *p);
678static asdl_seq *_loop0_121_rule(Parser *p);
679static asdl_seq *_gather_120_rule(Parser *p);
680static void *_tmp_122_rule(Parser *p);
681static asdl_seq *_loop0_124_rule(Parser *p);
682static asdl_seq *_gather_123_rule(Parser *p);
683static asdl_seq *_loop0_126_rule(Parser *p);
684static asdl_seq *_gather_125_rule(Parser *p);
685static void *_tmp_127_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300686static asdl_seq *_loop0_128_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700687static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100688static asdl_seq *_loop0_130_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700689static void *_tmp_131_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100690static void *_tmp_132_rule(Parser *p);
691static asdl_seq *_loop0_133_rule(Parser *p);
692static void *_tmp_134_rule(Parser *p);
693static asdl_seq *_loop0_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700694static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100695static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700696static void *_tmp_138_rule(Parser *p);
697static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300698static void *_tmp_140_rule(Parser *p);
699static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700700static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300701static void *_tmp_143_rule(Parser *p);
702static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300703static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700704static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300705static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300706static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700707static void *_tmp_149_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700708static void *_tmp_150_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100709static void *_tmp_151_rule(Parser *p);
710static void *_tmp_152_rule(Parser *p);
711static asdl_seq *_loop1_153_rule(Parser *p);
712static asdl_seq *_loop1_154_rule(Parser *p);
713static void *_tmp_155_rule(Parser *p);
714static void *_tmp_156_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100715
716
717// file: statements? $
718static mod_ty
719file_rule(Parser *p)
720{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700721 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100722 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700723 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100724 return NULL;
725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100726 mod_ty _res = NULL;
727 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100728 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300729 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700730 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300731 return NULL;
732 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700733 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100734 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100735 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100736 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100737 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100738 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100739 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100740 )
741 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700742 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100743 _res = _PyPegen_make_module ( p , a );
744 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100745 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100747 return NULL;
748 }
749 goto done;
750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100751 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700752 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100755 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100756 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700757 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100758 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100759}
760
761// interactive: statement_newline
762static mod_ty
763interactive_rule(Parser *p)
764{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700765 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100766 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700767 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100768 return NULL;
769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100770 mod_ty _res = NULL;
771 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100772 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300773 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700774 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300775 return NULL;
776 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700777 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100778 asdl_seq* a;
779 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100780 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100781 )
782 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700783 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100784 _res = Interactive ( a , p -> arena );
785 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100786 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700787 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100788 return NULL;
789 }
790 goto done;
791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100792 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700793 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100796 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100797 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700798 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100799 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100800}
801
802// eval: expressions NEWLINE* $
803static mod_ty
804eval_rule(Parser *p)
805{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700806 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100807 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100809 return NULL;
810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100811 mod_ty _res = NULL;
812 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100813 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700815 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300816 return NULL;
817 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700818 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100819 asdl_seq * _loop0_1_var;
820 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100821 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100822 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100823 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100824 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100825 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100826 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100827 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100828 )
829 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700830 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100831 _res = Expression ( a , p -> arena );
832 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100833 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700834 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100835 return NULL;
836 }
837 goto done;
838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100839 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700840 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100843 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100844 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100846 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100847}
848
Guido van Rossumc001c092020-04-30 12:12:19 -0700849// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
850static mod_ty
851func_type_rule(Parser *p)
852{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700853 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700854 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700855 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700856 return NULL;
857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100858 mod_ty _res = NULL;
859 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700860 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700862 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300863 return NULL;
864 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700865 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 +0100866 Token * _literal;
867 Token * _literal_1;
868 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700869 asdl_seq * _loop0_2_var;
870 void *a;
871 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100872 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100874 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100876 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700877 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100878 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100880 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700881 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100882 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100884 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700885 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100886 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700887 )
888 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700889 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 +0100890 _res = FunctionType ( a , b , p -> arena );
891 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700892 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700893 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700894 return NULL;
895 }
896 goto done;
897 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100898 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700899 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100902 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700903 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700904 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100905 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700906}
907
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100908// fstring: star_expressions
909static expr_ty
910fstring_rule(Parser *p)
911{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700912 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100913 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100915 return NULL;
916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100917 expr_ty _res = NULL;
918 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100919 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700921 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300922 return NULL;
923 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700924 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100925 expr_ty star_expressions_var;
926 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100927 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100928 )
929 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700930 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100931 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100932 goto done;
933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700935 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100938 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100939 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700940 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100941 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100942}
943
Guido van Rossumc001c092020-04-30 12:12:19 -0700944// type_expressions:
945// | ','.expression+ ',' '*' expression ',' '**' expression
946// | ','.expression+ ',' '*' expression
947// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700948// | '*' expression ',' '**' expression
949// | '*' expression
950// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700951// | ','.expression+
952static asdl_seq*
953type_expressions_rule(Parser *p)
954{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700955 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700957 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700958 return NULL;
959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100960 asdl_seq* _res = NULL;
961 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700962 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300963 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700964 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300965 return NULL;
966 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700967 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 +0100968 Token * _literal;
969 Token * _literal_1;
970 Token * _literal_2;
971 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700972 asdl_seq * a;
973 expr_ty b;
974 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100976 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100980 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100982 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700983 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100984 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700985 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100986 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700987 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100988 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700989 )
990 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700991 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 +0100992 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
993 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700994 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700995 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700996 return NULL;
997 }
998 goto done;
999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001000 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001001 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001003 }
1004 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001005 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001006 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001007 return NULL;
1008 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001009 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001010 Token * _literal;
1011 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001012 asdl_seq * a;
1013 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001015 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001016 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001017 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001018 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001019 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -07001020 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001021 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001022 )
1023 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001024 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 +01001025 _res = _PyPegen_seq_append_to_end ( p , a , b );
1026 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001027 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001028 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001029 return NULL;
1030 }
1031 goto done;
1032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001033 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001034 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001036 }
1037 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001038 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001039 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001040 return NULL;
1041 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001042 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001043 Token * _literal;
1044 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001045 asdl_seq * a;
1046 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001048 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001049 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001050 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001051 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001052 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001053 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001054 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001055 )
1056 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001057 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 +01001058 _res = _PyPegen_seq_append_to_end ( p , a , b );
1059 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001060 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001061 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001062 return NULL;
1063 }
1064 goto done;
1065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001066 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001067 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001069 }
Shantanu603d3542020-05-03 22:08:14 -07001070 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001072 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001073 return NULL;
1074 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001075 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001076 Token * _literal;
1077 Token * _literal_1;
1078 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001079 expr_ty a;
1080 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001081 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001082 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001083 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001084 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001085 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001086 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001087 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001088 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001089 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001090 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001091 )
1092 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001093 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 +01001094 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1095 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001096 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001097 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001098 return NULL;
1099 }
1100 goto done;
1101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001102 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001103 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001105 }
1106 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001107 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001108 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001109 return NULL;
1110 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001111 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001112 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001113 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001114 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001115 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001116 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001117 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001118 )
1119 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001120 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001121 _res = _PyPegen_singleton_seq ( p , a );
1122 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001123 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001124 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001125 return NULL;
1126 }
1127 goto done;
1128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001129 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001130 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001132 }
1133 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001134 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001135 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001136 return NULL;
1137 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001138 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001139 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001140 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001141 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001142 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001143 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001144 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001145 )
1146 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001147 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001148 _res = _PyPegen_singleton_seq ( p , a );
1149 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001150 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001151 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001152 return NULL;
1153 }
1154 goto done;
1155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001156 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001157 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001159 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001160 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001162 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001163 return NULL;
1164 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001165 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001166 asdl_seq * _gather_9_var;
1167 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001168 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001169 )
1170 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001171 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001172 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001173 goto done;
1174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001176 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001179 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001180 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001181 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001182 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001183}
1184
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001185// statements: statement+
1186static asdl_seq*
1187statements_rule(Parser *p)
1188{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001189 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001190 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001191 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001192 return NULL;
1193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001194 asdl_seq* _res = NULL;
1195 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001196 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001198 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001199 return NULL;
1200 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001201 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001202 asdl_seq * a;
1203 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001204 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001205 )
1206 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001207 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001208 _res = _PyPegen_seq_flatten ( p , a );
1209 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001210 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001211 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001212 return NULL;
1213 }
1214 goto done;
1215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001216 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001217 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001220 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001221 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001222 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001223 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001224}
1225
1226// statement: compound_stmt | simple_stmt
1227static asdl_seq*
1228statement_rule(Parser *p)
1229{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001230 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001232 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001233 return NULL;
1234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001235 asdl_seq* _res = NULL;
1236 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001237 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001239 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001240 return NULL;
1241 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001242 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001243 stmt_ty a;
1244 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001245 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001246 )
1247 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001248 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001249 _res = _PyPegen_singleton_seq ( p , a );
1250 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001251 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001253 return NULL;
1254 }
1255 goto done;
1256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001257 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001258 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001260 }
1261 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001262 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001263 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001264 return NULL;
1265 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001266 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001267 asdl_seq* simple_stmt_var;
1268 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001269 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001270 )
1271 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001272 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001273 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001274 goto done;
1275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001277 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001280 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001281 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001282 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001283 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001284}
1285
1286// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1287static asdl_seq*
1288statement_newline_rule(Parser *p)
1289{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001290 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001293 return NULL;
1294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001295 asdl_seq* _res = NULL;
1296 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001297 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1298 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001300 return NULL;
1301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001302 int _start_lineno = p->tokens[_mark]->lineno;
1303 UNUSED(_start_lineno); // Only used by EXTRA macro
1304 int _start_col_offset = p->tokens[_mark]->col_offset;
1305 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001306 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001309 return NULL;
1310 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001311 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 +01001312 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001313 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001314 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001315 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001316 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001317 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001318 )
1319 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001320 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 +01001321 _res = _PyPegen_singleton_seq ( p , a );
1322 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001325 return NULL;
1326 }
1327 goto done;
1328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001329 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001330 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001332 }
1333 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001335 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001336 return NULL;
1337 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001338 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001339 asdl_seq* simple_stmt_var;
1340 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001341 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001342 )
1343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001344 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 +01001345 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001346 goto done;
1347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001348 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001349 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001351 }
1352 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001353 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001354 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001355 return NULL;
1356 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001357 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001358 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001359 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001360 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001361 )
1362 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001363 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001364 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1365 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001366 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001367 return NULL;
1368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001369 int _end_lineno = _token->end_lineno;
1370 UNUSED(_end_lineno); // Only used by EXTRA macro
1371 int _end_col_offset = _token->end_col_offset;
1372 UNUSED(_end_col_offset); // Only used by EXTRA macro
1373 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001377 return NULL;
1378 }
1379 goto done;
1380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001382 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001384 }
1385 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001388 return NULL;
1389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001390 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001391 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001392 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001393 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001394 )
1395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001396 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001397 _res = _PyPegen_interactive_exit ( p );
1398 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001399 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001401 return NULL;
1402 }
1403 goto done;
1404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001405 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001406 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001409 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001410 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001411 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001412 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001413}
1414
1415// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1416static asdl_seq*
1417simple_stmt_rule(Parser *p)
1418{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001419 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001420 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001421 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001422 return NULL;
1423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001424 asdl_seq* _res = NULL;
1425 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001426 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001427 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001428 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001429 return NULL;
1430 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001431 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 +01001432 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001433 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001434 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001435 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001436 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001437 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001438 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001439 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001440 )
1441 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001442 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 +01001443 _res = _PyPegen_singleton_seq ( p , a );
1444 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001445 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001447 return NULL;
1448 }
1449 goto done;
1450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001451 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001452 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001454 }
1455 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001457 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001458 return NULL;
1459 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001460 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 +01001461 void *_opt_var;
1462 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001464 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001465 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001466 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001467 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001468 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001469 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001470 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001471 )
1472 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001473 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 +01001474 _res = a;
1475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001476 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001478 return NULL;
1479 }
1480 goto done;
1481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001483 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001486 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001487 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001489 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001490}
1491
1492// small_stmt:
1493// | assignment
1494// | star_expressions
1495// | &'return' return_stmt
1496// | &('import' | 'from') import_stmt
1497// | &'raise' raise_stmt
1498// | 'pass'
1499// | &'del' del_stmt
1500// | &'yield' yield_stmt
1501// | &'assert' assert_stmt
1502// | 'break'
1503// | 'continue'
1504// | &'global' global_stmt
1505// | &'nonlocal' nonlocal_stmt
1506static stmt_ty
1507small_stmt_rule(Parser *p)
1508{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001509 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001512 return NULL;
1513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001514 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001515 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1516 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001517 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001519 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1521 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001523 return NULL;
1524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001525 int _start_lineno = p->tokens[_mark]->lineno;
1526 UNUSED(_start_lineno); // Only used by EXTRA macro
1527 int _start_col_offset = p->tokens[_mark]->col_offset;
1528 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001529 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001532 return NULL;
1533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001534 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001535 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001536 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001537 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001538 )
1539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001540 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001541 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001542 goto done;
1543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001544 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001545 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001547 }
1548 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001549 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001550 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001551 return NULL;
1552 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001553 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001554 expr_ty e;
1555 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001556 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001557 )
1558 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001559 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 +01001560 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1561 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001562 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001563 return NULL;
1564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001565 int _end_lineno = _token->end_lineno;
1566 UNUSED(_end_lineno); // Only used by EXTRA macro
1567 int _end_col_offset = _token->end_col_offset;
1568 UNUSED(_end_col_offset); // Only used by EXTRA macro
1569 _res = _Py_Expr ( e , EXTRA );
1570 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001571 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001572 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001573 return NULL;
1574 }
1575 goto done;
1576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001577 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001578 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001580 }
1581 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001583 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001584 return NULL;
1585 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001586 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 +01001587 stmt_ty return_stmt_var;
1588 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001589 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001591 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001592 )
1593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001594 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 +01001595 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001596 goto done;
1597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001598 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001599 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001601 }
1602 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001605 return NULL;
1606 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001607 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 +01001608 stmt_ty import_stmt_var;
1609 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001610 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001611 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001612 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001613 )
1614 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001615 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 +01001616 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001617 goto done;
1618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001619 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001620 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001622 }
1623 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001625 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001626 return NULL;
1627 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001628 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 +01001629 stmt_ty raise_stmt_var;
1630 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001631 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001632 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001633 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001634 )
1635 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001636 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 +01001637 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001638 goto done;
1639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001640 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001641 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001643 }
1644 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001646 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001647 return NULL;
1648 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001649 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001650 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001651 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001652 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001653 )
1654 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001655 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1657 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001658 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001659 return NULL;
1660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001661 int _end_lineno = _token->end_lineno;
1662 UNUSED(_end_lineno); // Only used by EXTRA macro
1663 int _end_col_offset = _token->end_col_offset;
1664 UNUSED(_end_col_offset); // Only used by EXTRA macro
1665 _res = _Py_Pass ( EXTRA );
1666 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001669 return NULL;
1670 }
1671 goto done;
1672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001673 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001674 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001676 }
1677 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001678 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001679 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001680 return NULL;
1681 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001682 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 +01001683 stmt_ty del_stmt_var;
1684 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001685 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001686 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001687 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001688 )
1689 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001690 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 +01001691 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001692 goto done;
1693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001694 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001695 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001697 }
1698 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001699 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001700 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001701 return NULL;
1702 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001703 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 +01001704 stmt_ty yield_stmt_var;
1705 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001706 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001707 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001708 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001709 )
1710 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001711 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 +01001712 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001713 goto done;
1714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001716 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001718 }
1719 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001722 return NULL;
1723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001724 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 +01001725 stmt_ty assert_stmt_var;
1726 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001727 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001728 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001729 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001730 )
1731 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001732 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 +01001733 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001734 goto done;
1735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001736 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001737 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001739 }
1740 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001743 return NULL;
1744 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001745 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001746 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001747 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001748 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001749 )
1750 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001751 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001752 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1753 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001754 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001755 return NULL;
1756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001757 int _end_lineno = _token->end_lineno;
1758 UNUSED(_end_lineno); // Only used by EXTRA macro
1759 int _end_col_offset = _token->end_col_offset;
1760 UNUSED(_end_col_offset); // Only used by EXTRA macro
1761 _res = _Py_Break ( EXTRA );
1762 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001763 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001764 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001765 return NULL;
1766 }
1767 goto done;
1768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001769 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001770 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001772 }
1773 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001775 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001776 return NULL;
1777 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001778 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001779 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001780 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001781 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001782 )
1783 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001784 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001785 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1786 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001787 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001788 return NULL;
1789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001790 int _end_lineno = _token->end_lineno;
1791 UNUSED(_end_lineno); // Only used by EXTRA macro
1792 int _end_col_offset = _token->end_col_offset;
1793 UNUSED(_end_col_offset); // Only used by EXTRA macro
1794 _res = _Py_Continue ( EXTRA );
1795 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001796 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001797 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001798 return NULL;
1799 }
1800 goto done;
1801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001802 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001803 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001805 }
1806 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001807 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001808 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001809 return NULL;
1810 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001811 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 +01001812 stmt_ty global_stmt_var;
1813 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001814 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001815 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001816 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001817 )
1818 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001819 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 +01001820 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001821 goto done;
1822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001823 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001824 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001826 }
1827 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001829 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001830 return NULL;
1831 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001832 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 +01001833 stmt_ty nonlocal_stmt_var;
1834 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001835 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001836 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001837 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001838 )
1839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001840 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 +01001841 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001842 goto done;
1843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001845 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001848 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001849 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001850 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001851 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001852 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001853}
1854
1855// compound_stmt:
1856// | &('def' | '@' | ASYNC) function_def
1857// | &'if' if_stmt
1858// | &('class' | '@') class_def
1859// | &('with' | ASYNC) with_stmt
1860// | &('for' | ASYNC) for_stmt
1861// | &'try' try_stmt
1862// | &'while' while_stmt
1863static stmt_ty
1864compound_stmt_rule(Parser *p)
1865{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001866 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001867 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001869 return NULL;
1870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001871 stmt_ty _res = NULL;
1872 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001873 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001876 return NULL;
1877 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001878 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 +01001879 stmt_ty function_def_var;
1880 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001881 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001882 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001883 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001884 )
1885 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001886 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 +01001887 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001888 goto done;
1889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001890 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001891 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001893 }
1894 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001895 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001896 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001897 return NULL;
1898 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001899 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 +01001900 stmt_ty if_stmt_var;
1901 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001902 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001903 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001904 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001905 )
1906 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001907 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 +01001908 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001909 goto done;
1910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001911 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001912 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001914 }
1915 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001916 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001917 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001918 return NULL;
1919 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001920 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 +01001921 stmt_ty class_def_var;
1922 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001923 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001924 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001925 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001926 )
1927 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001928 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 +01001929 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001930 goto done;
1931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001932 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001933 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001935 }
1936 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001939 return NULL;
1940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001941 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 +01001942 stmt_ty with_stmt_var;
1943 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001944 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001945 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001946 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001947 )
1948 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001949 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 +01001950 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001951 goto done;
1952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001953 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001954 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001956 }
1957 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001959 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001960 return NULL;
1961 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001962 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 +01001963 stmt_ty for_stmt_var;
1964 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001965 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001966 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001967 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001968 )
1969 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001970 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 +01001971 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001972 goto done;
1973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001974 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001975 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001977 }
1978 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001981 return NULL;
1982 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001983 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 +01001984 stmt_ty try_stmt_var;
1985 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001986 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001987 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001988 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001989 )
1990 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001991 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 +01001992 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001993 goto done;
1994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001996 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001998 }
1999 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002001 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002002 return NULL;
2003 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002004 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 +01002005 stmt_ty while_stmt_var;
2006 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002007 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002008 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002009 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002010 )
2011 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002012 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 +01002013 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002014 goto done;
2015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002016 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002017 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002020 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002021 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002022 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002023 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002024}
2025
2026// assignment:
2027// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002028// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002029// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002030// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002031// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002032static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002033assignment_rule(Parser *p)
2034{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002035 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002038 return NULL;
2039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002040 stmt_ty _res = NULL;
2041 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002042 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2043 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002044 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002045 return NULL;
2046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002047 int _start_lineno = p->tokens[_mark]->lineno;
2048 UNUSED(_start_lineno); // Only used by EXTRA macro
2049 int _start_col_offset = p->tokens[_mark]->col_offset;
2050 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002051 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002053 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002054 return NULL;
2055 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002056 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 +01002057 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002058 expr_ty a;
2059 expr_ty b;
2060 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002062 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002063 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002064 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002065 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002066 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002068 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002069 )
2070 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002071 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 +01002072 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2073 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002075 return NULL;
2076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002077 int _end_lineno = _token->end_lineno;
2078 UNUSED(_end_lineno); // Only used by EXTRA macro
2079 int _end_col_offset = _token->end_col_offset;
2080 UNUSED(_end_col_offset); // Only used by EXTRA macro
2081 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2082 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002083 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002085 return NULL;
2086 }
2087 goto done;
2088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002089 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002090 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002092 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002093 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002095 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002096 return NULL;
2097 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002098 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 +01002099 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002100 void *a;
2101 expr_ty b;
2102 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002104 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002105 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002106 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002107 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002108 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002109 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002110 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002111 )
2112 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002113 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 +01002114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2115 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002116 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002117 return NULL;
2118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002119 int _end_lineno = _token->end_lineno;
2120 UNUSED(_end_lineno); // Only used by EXTRA macro
2121 int _end_col_offset = _token->end_col_offset;
2122 UNUSED(_end_col_offset); // Only used by EXTRA macro
2123 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2124 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002125 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002126 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002127 return NULL;
2128 }
2129 goto done;
2130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002131 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002132 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002134 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002135 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002137 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002138 return NULL;
2139 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002140 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 +01002141 asdl_seq * a;
2142 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002143 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002144 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002145 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002146 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002147 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002148 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002149 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2150 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002151 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002152 )
2153 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002154 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 +01002155 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2156 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002157 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002158 return NULL;
2159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002160 int _end_lineno = _token->end_lineno;
2161 UNUSED(_end_lineno); // Only used by EXTRA macro
2162 int _end_col_offset = _token->end_col_offset;
2163 UNUSED(_end_col_offset); // Only used by EXTRA macro
2164 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2165 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002166 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002167 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002168 return NULL;
2169 }
2170 goto done;
2171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002172 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002173 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002175 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002176 { // single_target augassign ~ (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002177 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002178 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002179 return NULL;
2180 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002181 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2182 int _cut_var = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002183 expr_ty a;
2184 AugOperator* b;
2185 void *c;
2186 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002187 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002188 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002189 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002190 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002191 (_cut_var = 1)
2192 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002193 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002194 )
2195 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002196 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 +01002197 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2198 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002200 return NULL;
2201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002202 int _end_lineno = _token->end_lineno;
2203 UNUSED(_end_lineno); // Only used by EXTRA macro
2204 int _end_col_offset = _token->end_col_offset;
2205 UNUSED(_end_col_offset); // Only used by EXTRA macro
2206 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2207 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002208 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002209 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002210 return NULL;
2211 }
2212 goto done;
2213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002214 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002215 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2217 if (_cut_var) {
2218 D(p->level--);
2219 return NULL;
2220 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002221 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02002222 if (p->call_invalid_rules) { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002225 return NULL;
2226 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002227 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002228 void *invalid_assignment_var;
2229 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002230 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002231 )
2232 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002233 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002234 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002235 goto done;
2236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002237 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002238 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002241 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002242 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002243 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002244 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002245}
2246
2247// augassign:
2248// | '+='
2249// | '-='
2250// | '*='
2251// | '@='
2252// | '/='
2253// | '%='
2254// | '&='
2255// | '|='
2256// | '^='
2257// | '<<='
2258// | '>>='
2259// | '**='
2260// | '//='
2261static AugOperator*
2262augassign_rule(Parser *p)
2263{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002264 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002266 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002267 return NULL;
2268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002269 AugOperator* _res = NULL;
2270 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002271 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002272 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002273 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002274 return NULL;
2275 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002276 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002277 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002278 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002279 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002280 )
2281 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002282 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002283 _res = _PyPegen_augoperator ( p , Add );
2284 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002285 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002287 return NULL;
2288 }
2289 goto done;
2290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002291 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002292 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002294 }
2295 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002296 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002297 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002298 return NULL;
2299 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002300 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002301 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002302 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002303 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002304 )
2305 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002306 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002307 _res = _PyPegen_augoperator ( p , Sub );
2308 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002309 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002310 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002311 return NULL;
2312 }
2313 goto done;
2314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002315 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002316 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002318 }
2319 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002321 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002322 return NULL;
2323 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002324 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002325 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002326 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002327 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002328 )
2329 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002330 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002331 _res = _PyPegen_augoperator ( p , Mult );
2332 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002333 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002334 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002335 return NULL;
2336 }
2337 goto done;
2338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002339 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002340 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002342 }
2343 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002345 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002346 return NULL;
2347 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002348 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002349 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002350 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002351 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002352 )
2353 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002354 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002355 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2356 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002357 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002358 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002359 return NULL;
2360 }
2361 goto done;
2362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002363 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002364 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002366 }
2367 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002370 return NULL;
2371 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002372 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002373 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002374 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002375 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002376 )
2377 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002378 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002379 _res = _PyPegen_augoperator ( p , Div );
2380 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002381 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002382 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002383 return NULL;
2384 }
2385 goto done;
2386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002387 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002388 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002390 }
2391 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002393 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002394 return NULL;
2395 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002396 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002397 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002398 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002399 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002400 )
2401 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002402 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002403 _res = _PyPegen_augoperator ( p , Mod );
2404 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002405 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002407 return NULL;
2408 }
2409 goto done;
2410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002411 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002412 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002414 }
2415 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002418 return NULL;
2419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002420 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002421 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002422 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002423 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002424 )
2425 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002426 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002427 _res = _PyPegen_augoperator ( p , BitAnd );
2428 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002429 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002431 return NULL;
2432 }
2433 goto done;
2434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002435 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002436 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002438 }
2439 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002440 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002441 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002442 return NULL;
2443 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002444 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002445 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002446 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002447 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002448 )
2449 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002450 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002451 _res = _PyPegen_augoperator ( p , BitOr );
2452 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002453 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002454 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002455 return NULL;
2456 }
2457 goto done;
2458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002459 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002460 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002462 }
2463 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002464 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002465 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002466 return NULL;
2467 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002468 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002469 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002470 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002471 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002472 )
2473 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002474 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002475 _res = _PyPegen_augoperator ( p , BitXor );
2476 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002477 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002478 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002479 return NULL;
2480 }
2481 goto done;
2482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002483 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002484 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002486 }
2487 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002488 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002489 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002490 return NULL;
2491 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002492 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002493 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002494 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002495 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002496 )
2497 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002498 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002499 _res = _PyPegen_augoperator ( p , LShift );
2500 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002501 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002503 return NULL;
2504 }
2505 goto done;
2506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002507 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002508 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002510 }
2511 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002513 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002514 return NULL;
2515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002516 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002517 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002518 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002519 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002520 )
2521 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002522 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002523 _res = _PyPegen_augoperator ( p , RShift );
2524 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002525 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002526 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002527 return NULL;
2528 }
2529 goto done;
2530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002531 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002532 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002534 }
2535 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002537 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002538 return NULL;
2539 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002540 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002541 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002542 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002543 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002544 )
2545 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002546 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002547 _res = _PyPegen_augoperator ( p , Pow );
2548 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002549 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002550 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002551 return NULL;
2552 }
2553 goto done;
2554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002555 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002556 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002558 }
2559 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002562 return NULL;
2563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002564 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002565 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002566 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002567 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002568 )
2569 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002570 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002571 _res = _PyPegen_augoperator ( p , FloorDiv );
2572 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002573 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002574 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002575 return NULL;
2576 }
2577 goto done;
2578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002579 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002580 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002583 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002584 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002585 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002586 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002587}
2588
2589// global_stmt: 'global' ','.NAME+
2590static stmt_ty
2591global_stmt_rule(Parser *p)
2592{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002593 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002594 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002596 return NULL;
2597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002598 stmt_ty _res = NULL;
2599 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002600 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2601 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002603 return NULL;
2604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002605 int _start_lineno = p->tokens[_mark]->lineno;
2606 UNUSED(_start_lineno); // Only used by EXTRA macro
2607 int _start_col_offset = p->tokens[_mark]->col_offset;
2608 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002609 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002610 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002611 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002612 return NULL;
2613 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002614 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002615 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002616 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002617 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002618 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002619 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002620 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002621 )
2622 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002623 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 +01002624 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2625 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002626 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002627 return NULL;
2628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002629 int _end_lineno = _token->end_lineno;
2630 UNUSED(_end_lineno); // Only used by EXTRA macro
2631 int _end_col_offset = _token->end_col_offset;
2632 UNUSED(_end_col_offset); // Only used by EXTRA macro
2633 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2634 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002637 return NULL;
2638 }
2639 goto done;
2640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002641 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002642 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002645 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002646 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002647 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002648 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002649}
2650
2651// nonlocal_stmt: 'nonlocal' ','.NAME+
2652static stmt_ty
2653nonlocal_stmt_rule(Parser *p)
2654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002658 return NULL;
2659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002660 stmt_ty _res = NULL;
2661 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002665 return NULL;
2666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002667 int _start_lineno = p->tokens[_mark]->lineno;
2668 UNUSED(_start_lineno); // Only used by EXTRA macro
2669 int _start_col_offset = p->tokens[_mark]->col_offset;
2670 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002671 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002674 return NULL;
2675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002676 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002677 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002678 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002679 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002680 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002681 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002682 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002683 )
2684 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002685 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 +01002686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2687 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002688 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002689 return NULL;
2690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002691 int _end_lineno = _token->end_lineno;
2692 UNUSED(_end_lineno); // Only used by EXTRA macro
2693 int _end_col_offset = _token->end_col_offset;
2694 UNUSED(_end_col_offset); // Only used by EXTRA macro
2695 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2696 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002697 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002699 return NULL;
2700 }
2701 goto done;
2702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002703 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002704 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002707 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002708 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002709 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002710 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002711}
2712
2713// yield_stmt: yield_expr
2714static stmt_ty
2715yield_stmt_rule(Parser *p)
2716{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002717 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002720 return NULL;
2721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002722 stmt_ty _res = NULL;
2723 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002724 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2725 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002727 return NULL;
2728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002729 int _start_lineno = p->tokens[_mark]->lineno;
2730 UNUSED(_start_lineno); // Only used by EXTRA macro
2731 int _start_col_offset = p->tokens[_mark]->col_offset;
2732 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002733 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002735 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002736 return NULL;
2737 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002738 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002739 expr_ty y;
2740 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002741 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002742 )
2743 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002744 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 +01002745 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2746 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002748 return NULL;
2749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002750 int _end_lineno = _token->end_lineno;
2751 UNUSED(_end_lineno); // Only used by EXTRA macro
2752 int _end_col_offset = _token->end_col_offset;
2753 UNUSED(_end_col_offset); // Only used by EXTRA macro
2754 _res = _Py_Expr ( y , EXTRA );
2755 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002756 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002758 return NULL;
2759 }
2760 goto done;
2761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002762 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002763 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002766 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002767 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002768 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002769 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002770}
2771
2772// assert_stmt: 'assert' expression [',' expression]
2773static stmt_ty
2774assert_stmt_rule(Parser *p)
2775{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002776 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002779 return NULL;
2780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002781 stmt_ty _res = NULL;
2782 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002783 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2784 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002786 return NULL;
2787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002788 int _start_lineno = p->tokens[_mark]->lineno;
2789 UNUSED(_start_lineno); // Only used by EXTRA macro
2790 int _start_col_offset = p->tokens[_mark]->col_offset;
2791 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002792 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002794 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002795 return NULL;
2796 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002797 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 +01002798 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002799 expr_ty a;
2800 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002801 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002802 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002804 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002806 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002807 )
2808 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002809 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 +01002810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2811 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002813 return NULL;
2814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002815 int _end_lineno = _token->end_lineno;
2816 UNUSED(_end_lineno); // Only used by EXTRA macro
2817 int _end_col_offset = _token->end_col_offset;
2818 UNUSED(_end_col_offset); // Only used by EXTRA macro
2819 _res = _Py_Assert ( a , b , EXTRA );
2820 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002821 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002823 return NULL;
2824 }
2825 goto done;
2826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002827 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002828 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002831 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002832 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002833 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002834 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002835}
2836
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002837// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002838static stmt_ty
2839del_stmt_rule(Parser *p)
2840{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002841 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002843 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002844 return NULL;
2845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002846 stmt_ty _res = NULL;
2847 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002848 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2849 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002850 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002851 return NULL;
2852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002853 int _start_lineno = p->tokens[_mark]->lineno;
2854 UNUSED(_start_lineno); // Only used by EXTRA macro
2855 int _start_col_offset = p->tokens[_mark]->col_offset;
2856 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002857 { // 'del' del_targets &(';' | NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002859 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002860 return NULL;
2861 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002862 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 +01002863 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002864 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002865 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002866 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002867 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002868 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002869 &&
2870 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002871 )
2872 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002873 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 +01002874 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2875 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002877 return NULL;
2878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002879 int _end_lineno = _token->end_lineno;
2880 UNUSED(_end_lineno); // Only used by EXTRA macro
2881 int _end_col_offset = _token->end_col_offset;
2882 UNUSED(_end_col_offset); // Only used by EXTRA macro
2883 _res = _Py_Delete ( a , EXTRA );
2884 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002885 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002887 return NULL;
2888 }
2889 goto done;
2890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002891 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002892 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2894 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02002895 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002896 if (p->error_indicator) {
2897 D(p->level--);
2898 return NULL;
2899 }
2900 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2901 void *invalid_del_stmt_var;
2902 if (
2903 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2904 )
2905 {
2906 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2907 _res = invalid_del_stmt_var;
2908 goto done;
2909 }
2910 p->mark = _mark;
2911 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002914 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002915 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002916 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002917 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002918}
2919
2920// import_stmt: import_name | import_from
2921static stmt_ty
2922import_stmt_rule(Parser *p)
2923{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002924 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002925 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002926 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002927 return NULL;
2928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002929 stmt_ty _res = NULL;
2930 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002931 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002932 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002933 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002934 return NULL;
2935 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002936 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002937 stmt_ty import_name_var;
2938 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002939 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002940 )
2941 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002942 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 +01002943 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002944 goto done;
2945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002946 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002947 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002949 }
2950 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002951 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002952 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002953 return NULL;
2954 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002955 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002956 stmt_ty import_from_var;
2957 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002958 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002959 )
2960 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002961 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 +01002962 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002963 goto done;
2964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002965 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002966 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002969 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002970 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002971 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002972 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002973}
2974
2975// import_name: 'import' dotted_as_names
2976static stmt_ty
2977import_name_rule(Parser *p)
2978{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002979 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002980 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002981 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002982 return NULL;
2983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002984 stmt_ty _res = NULL;
2985 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002986 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2987 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002988 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002989 return NULL;
2990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002991 int _start_lineno = p->tokens[_mark]->lineno;
2992 UNUSED(_start_lineno); // Only used by EXTRA macro
2993 int _start_col_offset = p->tokens[_mark]->col_offset;
2994 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002995 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002998 return NULL;
2999 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003000 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 +01003001 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003002 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003003 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003004 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003005 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003006 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003007 )
3008 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003009 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 +01003010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3011 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003013 return NULL;
3014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003015 int _end_lineno = _token->end_lineno;
3016 UNUSED(_end_lineno); // Only used by EXTRA macro
3017 int _end_col_offset = _token->end_col_offset;
3018 UNUSED(_end_col_offset); // Only used by EXTRA macro
3019 _res = _Py_Import ( a , EXTRA );
3020 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003023 return NULL;
3024 }
3025 goto done;
3026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003028 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003031 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003032 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003033 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003034 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003035}
3036
3037// import_from:
3038// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3039// | 'from' (('.' | '...'))+ 'import' import_from_targets
3040static stmt_ty
3041import_from_rule(Parser *p)
3042{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003043 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003044 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003046 return NULL;
3047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003048 stmt_ty _res = NULL;
3049 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003050 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3051 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003053 return NULL;
3054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003055 int _start_lineno = p->tokens[_mark]->lineno;
3056 UNUSED(_start_lineno); // Only used by EXTRA macro
3057 int _start_col_offset = p->tokens[_mark]->col_offset;
3058 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003059 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003061 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003062 return NULL;
3063 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003064 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 +01003065 Token * _keyword;
3066 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003067 asdl_seq * a;
3068 expr_ty b;
3069 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003071 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003073 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003074 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003075 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003076 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003077 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003078 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003079 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003080 )
3081 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003082 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 +01003083 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3084 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003085 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003086 return NULL;
3087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003088 int _end_lineno = _token->end_lineno;
3089 UNUSED(_end_lineno); // Only used by EXTRA macro
3090 int _end_col_offset = _token->end_col_offset;
3091 UNUSED(_end_col_offset); // Only used by EXTRA macro
3092 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3093 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003094 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003095 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003096 return NULL;
3097 }
3098 goto done;
3099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003101 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003103 }
3104 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003106 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003107 return NULL;
3108 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003109 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 +01003110 Token * _keyword;
3111 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003112 asdl_seq * a;
3113 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003114 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003115 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003116 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003117 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003118 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003119 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003120 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003121 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003122 )
3123 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003124 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 +01003125 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3126 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003128 return NULL;
3129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003130 int _end_lineno = _token->end_lineno;
3131 UNUSED(_end_lineno); // Only used by EXTRA macro
3132 int _end_col_offset = _token->end_col_offset;
3133 UNUSED(_end_col_offset); // Only used by EXTRA macro
3134 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3135 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003136 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003137 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003138 return NULL;
3139 }
3140 goto done;
3141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003142 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003143 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003146 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003147 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003148 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003149 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003150}
3151
Pablo Galindo275d7e12020-05-21 22:04:54 +01003152// import_from_targets:
3153// | '(' import_from_as_names ','? ')'
3154// | import_from_as_names !','
3155// | '*'
3156// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003157static asdl_seq*
3158import_from_targets_rule(Parser *p)
3159{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003160 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003163 return NULL;
3164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003165 asdl_seq* _res = NULL;
3166 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003167 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003170 return NULL;
3171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003172 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 +01003173 Token * _literal;
3174 Token * _literal_1;
3175 void *_opt_var;
3176 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003177 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003179 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003180 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003181 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003182 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003183 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003184 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003185 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003186 )
3187 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003188 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 +01003189 _res = a;
3190 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003191 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003192 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003193 return NULL;
3194 }
3195 goto done;
3196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003197 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003198 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003200 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003201 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003202 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003203 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003204 return NULL;
3205 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003206 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 +01003207 asdl_seq* import_from_as_names_var;
3208 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003209 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003210 &&
3211 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003212 )
3213 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003214 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 +01003215 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003216 goto done;
3217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003218 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003219 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003221 }
3222 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003225 return NULL;
3226 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003227 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003228 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003229 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003230 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003231 )
3232 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003233 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003234 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3235 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003236 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003238 return NULL;
3239 }
3240 goto done;
3241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003243 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003245 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02003246 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo275d7e12020-05-21 22:04:54 +01003247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003248 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003249 return NULL;
3250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003251 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 +01003252 void *invalid_import_from_targets_var;
3253 if (
3254 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3255 )
3256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003257 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 +01003258 _res = invalid_import_from_targets_var;
3259 goto done;
3260 }
3261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003262 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003265 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003266 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003267 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003268 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003269}
3270
3271// import_from_as_names: ','.import_from_as_name+
3272static asdl_seq*
3273import_from_as_names_rule(Parser *p)
3274{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003275 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003276 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003278 return NULL;
3279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003280 asdl_seq* _res = NULL;
3281 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003282 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003284 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003285 return NULL;
3286 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003287 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 +01003288 asdl_seq * a;
3289 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003290 (a = _gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003291 )
3292 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003293 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 +01003294 _res = a;
3295 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003296 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003298 return NULL;
3299 }
3300 goto done;
3301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003302 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003303 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003306 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003307 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003308 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003309 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003310}
3311
3312// import_from_as_name: NAME ['as' NAME]
3313static alias_ty
3314import_from_as_name_rule(Parser *p)
3315{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003316 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003317 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003319 return NULL;
3320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003321 alias_ty _res = NULL;
3322 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003323 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003325 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003326 return NULL;
3327 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003328 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 +01003329 expr_ty a;
3330 void *b;
3331 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003332 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003333 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003334 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003335 )
3336 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003337 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 +01003338 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3339 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003340 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003342 return NULL;
3343 }
3344 goto done;
3345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003346 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003347 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003350 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003351 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003352 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003353 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003354}
3355
3356// dotted_as_names: ','.dotted_as_name+
3357static asdl_seq*
3358dotted_as_names_rule(Parser *p)
3359{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003360 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003363 return NULL;
3364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003365 asdl_seq* _res = NULL;
3366 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003367 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003370 return NULL;
3371 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003372 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 +01003373 asdl_seq * a;
3374 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003375 (a = _gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003376 )
3377 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003378 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 +01003379 _res = a;
3380 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003381 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003382 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003383 return NULL;
3384 }
3385 goto done;
3386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003387 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003388 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003391 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003392 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003393 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003394 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003395}
3396
3397// dotted_as_name: dotted_name ['as' NAME]
3398static alias_ty
3399dotted_as_name_rule(Parser *p)
3400{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003401 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003402 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003403 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003404 return NULL;
3405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003406 alias_ty _res = NULL;
3407 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003408 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003411 return NULL;
3412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003413 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 +01003414 expr_ty a;
3415 void *b;
3416 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003417 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003418 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003419 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003420 )
3421 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003422 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 +01003423 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3424 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003425 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003426 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003427 return NULL;
3428 }
3429 goto done;
3430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003431 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003432 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003435 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003436 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003437 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003438 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003439}
3440
3441// Left-recursive
3442// dotted_name: dotted_name '.' NAME | NAME
3443static expr_ty dotted_name_raw(Parser *);
3444static expr_ty
3445dotted_name_rule(Parser *p)
3446{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003447 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003448 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003449 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3450 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003451 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003453 int _mark = p->mark;
3454 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003455 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003456 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003457 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003458 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003459 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003461 p->mark = _mark;
3462 void *_raw = dotted_name_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02003463 if (p->error_indicator)
3464 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003465 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003466 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003467 _resmark = p->mark;
3468 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003470 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003472 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003473}
3474static expr_ty
3475dotted_name_raw(Parser *p)
3476{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003477 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003478 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003480 return NULL;
3481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003482 expr_ty _res = NULL;
3483 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003484 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003485 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003486 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003487 return NULL;
3488 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003489 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 +01003490 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003491 expr_ty a;
3492 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003493 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003494 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003495 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003496 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003497 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003498 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003499 )
3500 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003501 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 +01003502 _res = _PyPegen_join_names_with_dot ( p , a , b );
3503 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003504 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003506 return NULL;
3507 }
3508 goto done;
3509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003510 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003511 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003513 }
3514 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003515 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003516 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003517 return NULL;
3518 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003519 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003520 expr_ty name_var;
3521 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003522 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003523 )
3524 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003525 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003526 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003527 goto done;
3528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003529 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003530 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003533 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003534 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003535 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003536 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003537}
3538
3539// if_stmt:
3540// | 'if' named_expression ':' block elif_stmt
3541// | 'if' named_expression ':' block else_block?
3542static stmt_ty
3543if_stmt_rule(Parser *p)
3544{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003545 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003547 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003548 return NULL;
3549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003550 stmt_ty _res = NULL;
3551 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003555 return NULL;
3556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003557 int _start_lineno = p->tokens[_mark]->lineno;
3558 UNUSED(_start_lineno); // Only used by EXTRA macro
3559 int _start_col_offset = p->tokens[_mark]->col_offset;
3560 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003561 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003564 return NULL;
3565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003566 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 +01003567 Token * _keyword;
3568 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003569 expr_ty a;
3570 asdl_seq* b;
3571 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003573 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003575 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003576 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003577 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003578 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003579 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003580 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003581 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003582 )
3583 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003584 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 +01003585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3586 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003588 return NULL;
3589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003590 int _end_lineno = _token->end_lineno;
3591 UNUSED(_end_lineno); // Only used by EXTRA macro
3592 int _end_col_offset = _token->end_col_offset;
3593 UNUSED(_end_col_offset); // Only used by EXTRA macro
3594 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3595 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003596 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003598 return NULL;
3599 }
3600 goto done;
3601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003602 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003603 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003605 }
3606 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003608 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003609 return NULL;
3610 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003611 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 +01003612 Token * _keyword;
3613 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003614 expr_ty a;
3615 asdl_seq* b;
3616 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003618 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003620 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003621 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003622 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003624 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003625 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003626 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003627 )
3628 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003629 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 +01003630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3631 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003633 return NULL;
3634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003635 int _end_lineno = _token->end_lineno;
3636 UNUSED(_end_lineno); // Only used by EXTRA macro
3637 int _end_col_offset = _token->end_col_offset;
3638 UNUSED(_end_col_offset); // Only used by EXTRA macro
3639 _res = _Py_If ( a , b , c , EXTRA );
3640 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003643 return NULL;
3644 }
3645 goto done;
3646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003648 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003651 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003652 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003653 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003654 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003655}
3656
3657// elif_stmt:
3658// | 'elif' named_expression ':' block elif_stmt
3659// | 'elif' named_expression ':' block else_block?
3660static stmt_ty
3661elif_stmt_rule(Parser *p)
3662{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003663 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003665 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003666 return NULL;
3667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003668 stmt_ty _res = NULL;
3669 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003670 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3671 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003673 return NULL;
3674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003675 int _start_lineno = p->tokens[_mark]->lineno;
3676 UNUSED(_start_lineno); // Only used by EXTRA macro
3677 int _start_col_offset = p->tokens[_mark]->col_offset;
3678 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003679 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003681 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003682 return NULL;
3683 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003684 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 +01003685 Token * _keyword;
3686 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003687 expr_ty a;
3688 asdl_seq* b;
3689 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003691 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003692 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003693 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003694 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003695 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003696 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003697 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003698 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003699 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003700 )
3701 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003702 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 +01003703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3704 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003706 return NULL;
3707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003708 int _end_lineno = _token->end_lineno;
3709 UNUSED(_end_lineno); // Only used by EXTRA macro
3710 int _end_col_offset = _token->end_col_offset;
3711 UNUSED(_end_col_offset); // Only used by EXTRA macro
3712 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3713 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003714 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003716 return NULL;
3717 }
3718 goto done;
3719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003720 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003721 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003723 }
3724 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003727 return NULL;
3728 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003729 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 +01003730 Token * _keyword;
3731 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003732 expr_ty a;
3733 asdl_seq* b;
3734 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003736 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003738 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003739 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003740 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003741 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003742 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003743 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003744 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003745 )
3746 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003747 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 +01003748 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3749 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003751 return NULL;
3752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003753 int _end_lineno = _token->end_lineno;
3754 UNUSED(_end_lineno); // Only used by EXTRA macro
3755 int _end_col_offset = _token->end_col_offset;
3756 UNUSED(_end_col_offset); // Only used by EXTRA macro
3757 _res = _Py_If ( a , b , c , EXTRA );
3758 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003759 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003760 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003761 return NULL;
3762 }
3763 goto done;
3764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003765 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003766 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003769 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003770 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003771 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003772 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003773}
3774
3775// else_block: 'else' ':' block
3776static asdl_seq*
3777else_block_rule(Parser *p)
3778{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003779 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003780 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003782 return NULL;
3783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003784 asdl_seq* _res = NULL;
3785 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003786 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003789 return NULL;
3790 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003791 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003792 Token * _keyword;
3793 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003794 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003796 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003797 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003798 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003799 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003800 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003801 )
3802 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003803 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 +01003804 _res = b;
3805 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003806 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003807 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003808 return NULL;
3809 }
3810 goto done;
3811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003812 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003813 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003816 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003817 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003818 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003819 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003820}
3821
3822// while_stmt: 'while' named_expression ':' block else_block?
3823static stmt_ty
3824while_stmt_rule(Parser *p)
3825{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003826 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003829 return NULL;
3830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003831 stmt_ty _res = NULL;
3832 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003833 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3834 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003836 return NULL;
3837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003838 int _start_lineno = p->tokens[_mark]->lineno;
3839 UNUSED(_start_lineno); // Only used by EXTRA macro
3840 int _start_col_offset = p->tokens[_mark]->col_offset;
3841 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003842 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003844 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003845 return NULL;
3846 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003847 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 +01003848 Token * _keyword;
3849 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003850 expr_ty a;
3851 asdl_seq* b;
3852 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003854 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003856 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003857 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003858 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003860 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003862 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003863 )
3864 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003865 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 +01003866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3867 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003869 return NULL;
3870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003871 int _end_lineno = _token->end_lineno;
3872 UNUSED(_end_lineno); // Only used by EXTRA macro
3873 int _end_col_offset = _token->end_col_offset;
3874 UNUSED(_end_col_offset); // Only used by EXTRA macro
3875 _res = _Py_While ( a , b , c , EXTRA );
3876 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003879 return NULL;
3880 }
3881 goto done;
3882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003884 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003887 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003888 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003889 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003890 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003891}
3892
Guido van Rossumc001c092020-04-30 12:12:19 -07003893// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003894// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3895// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3896// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003897static stmt_ty
3898for_stmt_rule(Parser *p)
3899{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003900 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003903 return NULL;
3904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003905 stmt_ty _res = NULL;
3906 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003907 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3908 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003909 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003910 return NULL;
3911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003912 int _start_lineno = p->tokens[_mark]->lineno;
3913 UNUSED(_start_lineno); // Only used by EXTRA macro
3914 int _start_col_offset = p->tokens[_mark]->col_offset;
3915 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003916 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003917 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003918 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003919 return NULL;
3920 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003921 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?"));
3922 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003923 Token * _keyword;
3924 Token * _keyword_1;
3925 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003926 asdl_seq* b;
3927 void *el;
3928 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003929 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003930 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003931 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003932 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003933 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003934 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003935 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003936 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003937 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003938 (_cut_var = 1)
3939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003940 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003941 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003942 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003943 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003944 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003945 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003946 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003947 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003948 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003949 )
3950 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003951 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 +01003952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3953 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003954 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003955 return NULL;
3956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003957 int _end_lineno = _token->end_lineno;
3958 UNUSED(_end_lineno); // Only used by EXTRA macro
3959 int _end_col_offset = _token->end_col_offset;
3960 UNUSED(_end_col_offset); // Only used by EXTRA macro
3961 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3962 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003963 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003964 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003965 return NULL;
3966 }
3967 goto done;
3968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003969 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003970 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3972 if (_cut_var) {
3973 D(p->level--);
3974 return NULL;
3975 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003976 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003977 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003979 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003980 return NULL;
3981 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003982 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?"));
3983 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003984 Token * _keyword;
3985 Token * _keyword_1;
3986 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003987 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003988 asdl_seq* b;
3989 void *el;
3990 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003991 expr_ty t;
3992 void *tc;
3993 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003994 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003995 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003996 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003998 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003999 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004000 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004001 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004002 (_cut_var = 1)
4003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004004 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004005 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004006 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004007 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004008 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004010 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004011 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004012 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004013 )
4014 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004015 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 +01004016 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4017 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004018 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004019 return NULL;
4020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004021 int _end_lineno = _token->end_lineno;
4022 UNUSED(_end_lineno); // Only used by EXTRA macro
4023 int _end_col_offset = _token->end_col_offset;
4024 UNUSED(_end_col_offset); // Only used by EXTRA macro
4025 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4026 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004027 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004028 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004029 return NULL;
4030 }
4031 goto done;
4032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004033 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004034 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4036 if (_cut_var) {
4037 D(p->level--);
4038 return NULL;
4039 }
4040 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02004041 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004042 if (p->error_indicator) {
4043 D(p->level--);
4044 return NULL;
4045 }
4046 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4047 void *invalid_for_target_var;
4048 if (
4049 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4050 )
4051 {
4052 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4053 _res = invalid_for_target_var;
4054 goto done;
4055 }
4056 p->mark = _mark;
4057 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004060 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004061 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004062 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004063 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004064}
4065
4066// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004067// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004068// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004069// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004070// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004071static stmt_ty
4072with_stmt_rule(Parser *p)
4073{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004074 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004077 return NULL;
4078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004079 stmt_ty _res = NULL;
4080 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004081 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4082 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004084 return NULL;
4085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004086 int _start_lineno = p->tokens[_mark]->lineno;
4087 UNUSED(_start_lineno); // Only used by EXTRA macro
4088 int _start_col_offset = p->tokens[_mark]->col_offset;
4089 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004090 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004093 return NULL;
4094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004095 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 +01004096 Token * _keyword;
4097 Token * _literal;
4098 Token * _literal_1;
4099 Token * _literal_2;
4100 void *_opt_var;
4101 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004102 asdl_seq * a;
4103 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004104 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004105 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004106 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004107 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004108 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004109 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004110 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004111 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004112 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004113 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004114 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004115 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004116 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004117 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004118 )
4119 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004120 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 +01004121 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4122 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004124 return NULL;
4125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004126 int _end_lineno = _token->end_lineno;
4127 UNUSED(_end_lineno); // Only used by EXTRA macro
4128 int _end_col_offset = _token->end_col_offset;
4129 UNUSED(_end_col_offset); // Only used by EXTRA macro
4130 _res = _Py_With ( a , b , NULL , EXTRA );
4131 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004132 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004133 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004134 return NULL;
4135 }
4136 goto done;
4137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004138 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004139 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004141 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004142 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004143 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004144 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004145 return NULL;
4146 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004147 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 +01004148 Token * _keyword;
4149 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004150 asdl_seq * a;
4151 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004152 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004153 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004154 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004155 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004156 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004157 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004158 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004159 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004160 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004161 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004162 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004163 )
4164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004165 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 +01004166 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4167 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004169 return NULL;
4170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004171 int _end_lineno = _token->end_lineno;
4172 UNUSED(_end_lineno); // Only used by EXTRA macro
4173 int _end_col_offset = _token->end_col_offset;
4174 UNUSED(_end_col_offset); // Only used by EXTRA macro
4175 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4176 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004177 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004178 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004179 return NULL;
4180 }
4181 goto done;
4182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004183 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004184 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004186 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004187 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004190 return NULL;
4191 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004192 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 +01004193 Token * _keyword;
4194 Token * _literal;
4195 Token * _literal_1;
4196 Token * _literal_2;
4197 void *_opt_var;
4198 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004199 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004200 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004201 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004202 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004203 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004204 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004205 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004207 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004208 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004209 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004210 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004211 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004212 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004213 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004214 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004215 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004216 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004217 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004218 )
4219 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004220 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 +01004221 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4222 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004223 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004224 return NULL;
4225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004226 int _end_lineno = _token->end_lineno;
4227 UNUSED(_end_lineno); // Only used by EXTRA macro
4228 int _end_col_offset = _token->end_col_offset;
4229 UNUSED(_end_col_offset); // Only used by EXTRA macro
4230 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4231 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004232 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004233 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004234 return NULL;
4235 }
4236 goto done;
4237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004238 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004239 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004241 }
4242 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004245 return NULL;
4246 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004247 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 +01004248 Token * _keyword;
4249 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004250 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004251 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004252 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004253 void *tc;
4254 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004255 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004257 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004258 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004259 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004260 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004261 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004262 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004263 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004264 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004265 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004266 )
4267 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004268 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 +01004269 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4270 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004271 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004272 return NULL;
4273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004274 int _end_lineno = _token->end_lineno;
4275 UNUSED(_end_lineno); // Only used by EXTRA macro
4276 int _end_col_offset = _token->end_col_offset;
4277 UNUSED(_end_col_offset); // Only used by EXTRA macro
4278 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4279 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004280 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004282 return NULL;
4283 }
4284 goto done;
4285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004286 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004287 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004290 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004291 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004292 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004293 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004294}
4295
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004296// with_item:
4297// | expression 'as' star_target &(',' | ')' | ':')
4298// | invalid_with_item
4299// | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004300static withitem_ty
4301with_item_rule(Parser *p)
4302{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004303 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004304 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004306 return NULL;
4307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004308 withitem_ty _res = NULL;
4309 int _mark = p->mark;
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004310 { // expression 'as' star_target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004313 return NULL;
4314 }
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004315 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004316 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004317 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004318 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004319 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004320 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004321 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004322 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4323 &&
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004324 (t = star_target_rule(p)) // star_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004325 &&
4326 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004327 )
4328 {
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004329 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004330 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004331 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004332 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004333 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004334 return NULL;
4335 }
4336 goto done;
4337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004338 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004339 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004341 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02004342 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004343 if (p->error_indicator) {
4344 D(p->level--);
4345 return NULL;
4346 }
4347 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4348 void *invalid_with_item_var;
4349 if (
4350 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4351 )
4352 {
4353 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4354 _res = invalid_with_item_var;
4355 goto done;
4356 }
4357 p->mark = _mark;
4358 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4360 }
4361 { // expression
4362 if (p->error_indicator) {
4363 D(p->level--);
4364 return NULL;
4365 }
4366 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4367 expr_ty e;
4368 if (
4369 (e = expression_rule(p)) // expression
4370 )
4371 {
4372 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4373 _res = _Py_withitem ( e , NULL , p -> arena );
4374 if (_res == NULL && PyErr_Occurred()) {
4375 p->error_indicator = 1;
4376 D(p->level--);
4377 return NULL;
4378 }
4379 goto done;
4380 }
4381 p->mark = _mark;
4382 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004385 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004386 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004387 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004388 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004389}
4390
4391// try_stmt:
4392// | 'try' ':' block finally_block
4393// | 'try' ':' block except_block+ else_block? finally_block?
4394static stmt_ty
4395try_stmt_rule(Parser *p)
4396{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004397 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004398 if (p->error_indicator) {
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 stmt_ty _res = NULL;
4403 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004404 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4405 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004407 return NULL;
4408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004409 int _start_lineno = p->tokens[_mark]->lineno;
4410 UNUSED(_start_lineno); // Only used by EXTRA macro
4411 int _start_col_offset = p->tokens[_mark]->col_offset;
4412 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004413 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004415 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004416 return NULL;
4417 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004418 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 +01004419 Token * _keyword;
4420 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004421 asdl_seq* b;
4422 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004423 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004424 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004425 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004426 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004427 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004428 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004429 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004430 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004431 )
4432 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004433 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 +01004434 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4435 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004436 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004437 return NULL;
4438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004439 int _end_lineno = _token->end_lineno;
4440 UNUSED(_end_lineno); // Only used by EXTRA macro
4441 int _end_col_offset = _token->end_col_offset;
4442 UNUSED(_end_col_offset); // Only used by EXTRA macro
4443 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4444 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004445 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004447 return NULL;
4448 }
4449 goto done;
4450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004451 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004452 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004454 }
4455 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004457 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004458 return NULL;
4459 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004460 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 +01004461 Token * _keyword;
4462 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004463 asdl_seq* b;
4464 void *el;
4465 asdl_seq * ex;
4466 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004467 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004468 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004469 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004470 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004471 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004472 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004473 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004474 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004475 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004476 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004477 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004478 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004479 )
4480 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004481 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 +01004482 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4483 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004485 return NULL;
4486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004487 int _end_lineno = _token->end_lineno;
4488 UNUSED(_end_lineno); // Only used by EXTRA macro
4489 int _end_col_offset = _token->end_col_offset;
4490 UNUSED(_end_col_offset); // Only used by EXTRA macro
4491 _res = _Py_Try ( b , ex , el , f , EXTRA );
4492 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004493 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004494 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004495 return NULL;
4496 }
4497 goto done;
4498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004499 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004500 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004503 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004504 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004505 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004506 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004507}
4508
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004509// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004510static excepthandler_ty
4511except_block_rule(Parser *p)
4512{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004513 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004514 if (p->error_indicator) {
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 excepthandler_ty _res = NULL;
4519 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4521 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004523 return NULL;
4524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004525 int _start_lineno = p->tokens[_mark]->lineno;
4526 UNUSED(_start_lineno); // Only used by EXTRA macro
4527 int _start_col_offset = p->tokens[_mark]->col_offset;
4528 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004529 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004532 return NULL;
4533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004534 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 +01004535 Token * _keyword;
4536 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004537 asdl_seq* b;
4538 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004539 void *t;
4540 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004541 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004542 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004543 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004544 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004545 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004546 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004547 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004548 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004549 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004550 )
4551 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004552 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 +01004553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4554 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004555 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004556 return NULL;
4557 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004558 int _end_lineno = _token->end_lineno;
4559 UNUSED(_end_lineno); // Only used by EXTRA macro
4560 int _end_col_offset = _token->end_col_offset;
4561 UNUSED(_end_col_offset); // Only used by EXTRA macro
4562 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4563 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004564 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004565 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004566 return NULL;
4567 }
4568 goto done;
4569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004570 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004571 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004573 }
4574 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004576 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004577 return NULL;
4578 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004579 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004580 Token * _keyword;
4581 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004582 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004583 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004584 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004585 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004586 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004587 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004588 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004589 )
4590 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004591 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 +01004592 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4593 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004594 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004595 return NULL;
4596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004597 int _end_lineno = _token->end_lineno;
4598 UNUSED(_end_lineno); // Only used by EXTRA macro
4599 int _end_col_offset = _token->end_col_offset;
4600 UNUSED(_end_col_offset); // Only used by EXTRA macro
4601 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4602 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004603 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004604 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004605 return NULL;
4606 }
4607 goto done;
4608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004609 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004610 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004613 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004614 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004615 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004616 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004617}
4618
4619// finally_block: 'finally' ':' block
4620static asdl_seq*
4621finally_block_rule(Parser *p)
4622{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004623 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004625 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004626 return NULL;
4627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004628 asdl_seq* _res = NULL;
4629 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004630 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004632 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004633 return NULL;
4634 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004635 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004636 Token * _keyword;
4637 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004638 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004639 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004640 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004641 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004642 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004643 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004644 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004645 )
4646 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004647 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 +01004648 _res = a;
4649 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004650 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004652 return NULL;
4653 }
4654 goto done;
4655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004657 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004660 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004661 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004662 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004663 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004664}
4665
4666// return_stmt: 'return' star_expressions?
4667static stmt_ty
4668return_stmt_rule(Parser *p)
4669{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004670 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004671 if (p->error_indicator) {
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 stmt_ty _res = NULL;
4676 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004677 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4678 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004679 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004680 return NULL;
4681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004682 int _start_lineno = p->tokens[_mark]->lineno;
4683 UNUSED(_start_lineno); // Only used by EXTRA macro
4684 int _start_col_offset = p->tokens[_mark]->col_offset;
4685 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004686 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004688 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004689 return NULL;
4690 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004691 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 +01004692 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004693 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004694 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004695 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004696 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004697 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004698 )
4699 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004700 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 +01004701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4702 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004703 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004704 return NULL;
4705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004706 int _end_lineno = _token->end_lineno;
4707 UNUSED(_end_lineno); // Only used by EXTRA macro
4708 int _end_col_offset = _token->end_col_offset;
4709 UNUSED(_end_col_offset); // Only used by EXTRA macro
4710 _res = _Py_Return ( a , EXTRA );
4711 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004712 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004714 return NULL;
4715 }
4716 goto done;
4717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004718 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004719 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004722 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004723 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004724 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004725 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004726}
4727
4728// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4729static stmt_ty
4730raise_stmt_rule(Parser *p)
4731{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004732 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004733 if (p->error_indicator) {
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 stmt_ty _res = NULL;
4738 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004739 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4740 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004742 return NULL;
4743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004744 int _start_lineno = p->tokens[_mark]->lineno;
4745 UNUSED(_start_lineno); // Only used by EXTRA macro
4746 int _start_col_offset = p->tokens[_mark]->col_offset;
4747 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004748 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004751 return NULL;
4752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004753 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 +01004754 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004755 expr_ty a;
4756 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004757 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004758 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004759 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004760 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004761 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004762 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004763 )
4764 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004765 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 +01004766 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4767 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004769 return NULL;
4770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004771 int _end_lineno = _token->end_lineno;
4772 UNUSED(_end_lineno); // Only used by EXTRA macro
4773 int _end_col_offset = _token->end_col_offset;
4774 UNUSED(_end_col_offset); // Only used by EXTRA macro
4775 _res = _Py_Raise ( a , b , EXTRA );
4776 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004777 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004779 return NULL;
4780 }
4781 goto done;
4782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004784 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004786 }
4787 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004789 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004790 return NULL;
4791 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004792 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004793 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004794 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004795 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004796 )
4797 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004798 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4800 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004802 return NULL;
4803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004804 int _end_lineno = _token->end_lineno;
4805 UNUSED(_end_lineno); // Only used by EXTRA macro
4806 int _end_col_offset = _token->end_col_offset;
4807 UNUSED(_end_col_offset); // Only used by EXTRA macro
4808 _res = _Py_Raise ( NULL , NULL , EXTRA );
4809 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004810 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004812 return NULL;
4813 }
4814 goto done;
4815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004816 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004817 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004820 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004821 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004822 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004823 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004824}
4825
4826// function_def: decorators function_def_raw | function_def_raw
4827static stmt_ty
4828function_def_rule(Parser *p)
4829{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004830 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004831 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004833 return NULL;
4834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004835 stmt_ty _res = NULL;
4836 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004837 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004840 return NULL;
4841 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004842 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 +01004843 asdl_seq* d;
4844 stmt_ty f;
4845 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004846 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004848 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004849 )
4850 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004851 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 +01004852 _res = _PyPegen_function_def_decorators ( p , d , f );
4853 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004854 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004855 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004856 return NULL;
4857 }
4858 goto done;
4859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004860 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004861 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004863 }
4864 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004866 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004867 return NULL;
4868 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004869 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 +01004870 stmt_ty function_def_raw_var;
4871 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004872 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004873 )
4874 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004875 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 +01004876 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004877 goto done;
4878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004879 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004880 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004883 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004884 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004885 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004886 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004887}
4888
Guido van Rossumc001c092020-04-30 12:12:19 -07004889// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004890// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4891// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004892static stmt_ty
4893function_def_raw_rule(Parser *p)
4894{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004895 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004896 if (p->error_indicator) {
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 stmt_ty _res = NULL;
4901 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004902 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4903 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004904 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004905 return NULL;
4906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004907 int _start_lineno = p->tokens[_mark]->lineno;
4908 UNUSED(_start_lineno); // Only used by EXTRA macro
4909 int _start_col_offset = p->tokens[_mark]->col_offset;
4910 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004911 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004913 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004914 return NULL;
4915 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004916 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 +01004917 Token * _keyword;
4918 Token * _literal;
4919 Token * _literal_1;
4920 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004921 void *a;
4922 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004923 expr_ty n;
4924 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004925 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004926 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004927 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004928 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004929 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004930 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004931 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004932 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004933 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004934 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004935 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004936 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004937 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004938 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004939 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004940 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004941 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004942 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004943 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004944 )
4945 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004946 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 +01004947 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4948 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004949 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004950 return NULL;
4951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004952 int _end_lineno = _token->end_lineno;
4953 UNUSED(_end_lineno); // Only used by EXTRA macro
4954 int _end_col_offset = _token->end_col_offset;
4955 UNUSED(_end_col_offset); // Only used by EXTRA macro
4956 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4957 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004958 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004959 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004960 return NULL;
4961 }
4962 goto done;
4963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004964 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004965 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004967 }
4968 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004970 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004971 return NULL;
4972 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004973 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 +01004974 Token * _keyword;
4975 Token * _literal;
4976 Token * _literal_1;
4977 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004978 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004979 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004980 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004981 expr_ty n;
4982 void *params;
4983 void *tc;
4984 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004985 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004986 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004987 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004988 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004989 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004990 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004991 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004992 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004993 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004994 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004995 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004996 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004997 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004998 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004999 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005000 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005001 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005002 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005003 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005004 )
5005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005006 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 +01005007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5008 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005009 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005010 return NULL;
5011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005012 int _end_lineno = _token->end_lineno;
5013 UNUSED(_end_lineno); // Only used by EXTRA macro
5014 int _end_col_offset = _token->end_col_offset;
5015 UNUSED(_end_col_offset); // Only used by EXTRA macro
5016 _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 ) );
5017 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005018 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005020 return NULL;
5021 }
5022 goto done;
5023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005024 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005025 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005028 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005029 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005030 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005031 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005032}
5033
Guido van Rossumc001c092020-04-30 12:12:19 -07005034// func_type_comment:
5035// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5036// | invalid_double_type_comments
5037// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005038static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005039func_type_comment_rule(Parser *p)
5040{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005041 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005042 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005043 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005044 return NULL;
5045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005046 Token* _res = NULL;
5047 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005048 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005050 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005051 return NULL;
5052 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005053 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 +01005054 Token * newline_var;
5055 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005056 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005057 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005058 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005059 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005060 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005061 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005062 )
5063 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005064 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 +01005065 _res = t;
5066 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005067 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005068 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005069 return NULL;
5070 }
5071 goto done;
5072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005073 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005074 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005076 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005077 if (p->call_invalid_rules) { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005078 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005079 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005080 return NULL;
5081 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005082 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 -07005083 void *invalid_double_type_comments_var;
5084 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005085 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005086 )
5087 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005088 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 +01005089 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005090 goto done;
5091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005093 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005095 }
5096 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005099 return NULL;
5100 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005101 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 +01005102 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005103 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005104 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005105 )
5106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005107 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 +01005108 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005109 goto done;
5110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005111 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005112 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005115 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005116 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005117 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005118 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005119}
5120
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005121// params: invalid_parameters | parameters
5122static arguments_ty
5123params_rule(Parser *p)
5124{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005125 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005128 return NULL;
5129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005130 arguments_ty _res = NULL;
5131 int _mark = p->mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005132 if (p->call_invalid_rules) { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005135 return NULL;
5136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005137 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005138 void *invalid_parameters_var;
5139 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005140 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005141 )
5142 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005143 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005144 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005145 goto done;
5146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005147 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005148 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005150 }
5151 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005153 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005154 return NULL;
5155 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005156 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005157 arguments_ty parameters_var;
5158 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005159 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005160 )
5161 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005162 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005163 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005164 goto done;
5165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005167 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005170 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005171 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005172 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005173 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005174}
5175
5176// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005177// | slash_no_default param_no_default* param_with_default* star_etc?
5178// | slash_with_default param_with_default* star_etc?
5179// | param_no_default+ param_with_default* star_etc?
5180// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005181// | star_etc
5182static arguments_ty
5183parameters_rule(Parser *p)
5184{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005185 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005188 return NULL;
5189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005190 arguments_ty _res = NULL;
5191 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005192 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005194 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005195 return NULL;
5196 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005197 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 +01005198 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005199 asdl_seq * b;
5200 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005201 void *d;
5202 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005203 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005205 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005206 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005207 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005208 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005209 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005210 )
5211 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005212 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 +01005213 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5214 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005215 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005217 return NULL;
5218 }
5219 goto done;
5220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005221 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005222 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5223 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 +01005224 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005225 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005226 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005227 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005228 return NULL;
5229 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005230 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 +01005231 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005232 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005233 void *c;
5234 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005235 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005236 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005237 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005238 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005239 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005240 )
5241 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005242 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 +01005243 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5244 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005247 return NULL;
5248 }
5249 goto done;
5250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005251 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005252 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005254 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005255 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005258 return NULL;
5259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005260 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 -07005261 asdl_seq * a;
5262 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005263 void *c;
5264 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005265 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005266 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005267 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005268 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005269 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005270 )
5271 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005272 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 +01005273 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5274 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005275 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005277 return NULL;
5278 }
5279 goto done;
5280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005281 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005282 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005284 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005285 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005288 return NULL;
5289 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005290 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 -07005291 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005292 void *b;
5293 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005294 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005295 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005296 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005297 )
5298 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005299 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 +01005300 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5301 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005302 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005303 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005304 return NULL;
5305 }
5306 goto done;
5307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005308 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005309 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005311 }
5312 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005313 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005314 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005315 return NULL;
5316 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005317 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005318 StarEtc* a;
5319 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005320 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005321 )
5322 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005323 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005324 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5325 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005326 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005327 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005328 return NULL;
5329 }
5330 goto done;
5331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005332 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005333 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005336 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005337 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005338 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005339 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005340}
5341
Guido van Rossumc001c092020-04-30 12:12:19 -07005342// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005343static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005344slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005345{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005346 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005348 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005349 return NULL;
5350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005351 asdl_seq* _res = NULL;
5352 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005353 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005355 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005356 return NULL;
5357 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005358 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 +01005359 Token * _literal;
5360 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005361 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005362 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005363 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005364 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005365 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005366 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005367 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005368 )
5369 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005370 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 +01005371 _res = a;
5372 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005373 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005374 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005375 return NULL;
5376 }
5377 goto done;
5378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005379 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005380 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005382 }
5383 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005386 return NULL;
5387 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005388 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 +01005389 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005390 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005391 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005392 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005393 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005394 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005395 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005396 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005397 )
5398 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005399 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 +01005400 _res = a;
5401 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005402 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005403 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005404 return NULL;
5405 }
5406 goto done;
5407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005408 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005409 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005412 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005413 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005414 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005415 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005416}
5417
Guido van Rossumc001c092020-04-30 12:12:19 -07005418// slash_with_default:
5419// | param_no_default* param_with_default+ '/' ','
5420// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005421static SlashWithDefault*
5422slash_with_default_rule(Parser *p)
5423{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005424 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005426 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005427 return NULL;
5428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005429 SlashWithDefault* _res = NULL;
5430 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005431 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005434 return NULL;
5435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005436 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 +01005437 Token * _literal;
5438 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005439 asdl_seq * a;
5440 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005441 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005442 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005443 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005444 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005445 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005446 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005447 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005448 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005449 )
5450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005451 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 +01005452 _res = _PyPegen_slash_with_default ( p , a , b );
5453 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005454 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005455 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005456 return NULL;
5457 }
5458 goto done;
5459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005460 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005461 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005463 }
5464 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005466 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005467 return NULL;
5468 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005469 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 +01005470 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005471 asdl_seq * a;
5472 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005473 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005474 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005475 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005476 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005477 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005478 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005479 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005480 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005481 )
5482 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005483 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 +01005484 _res = _PyPegen_slash_with_default ( p , a , b );
5485 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005486 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005488 return NULL;
5489 }
5490 goto done;
5491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005492 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005493 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005496 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005497 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005498 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005499 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005500}
5501
5502// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005503// | '*' param_no_default param_maybe_default* kwds?
5504// | '*' ',' param_maybe_default+ kwds?
5505// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005506// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005507static StarEtc*
5508star_etc_rule(Parser *p)
5509{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005510 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005513 return NULL;
5514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005515 StarEtc* _res = NULL;
5516 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005517 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005518 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005519 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005520 return NULL;
5521 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005522 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 +01005523 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005524 arg_ty a;
5525 asdl_seq * b;
5526 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005527 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005528 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005530 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005531 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005532 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005533 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005534 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005535 )
5536 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005537 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 +01005538 _res = _PyPegen_star_etc ( p , a , b , c );
5539 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005540 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005541 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005542 return NULL;
5543 }
5544 goto done;
5545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005546 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005547 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005549 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005550 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005551 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005552 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005553 return NULL;
5554 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005555 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 +01005556 Token * _literal;
5557 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005558 asdl_seq * b;
5559 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005560 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005561 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005562 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005563 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005564 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005565 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005566 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005567 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005568 )
5569 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005570 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 +01005571 _res = _PyPegen_star_etc ( p , NULL , b , c );
5572 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005573 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005574 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005575 return NULL;
5576 }
5577 goto done;
5578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005579 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005580 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005582 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005583 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005585 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005586 return NULL;
5587 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005588 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005589 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005590 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005591 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005592 )
5593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005594 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005595 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5596 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005597 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005599 return NULL;
5600 }
5601 goto done;
5602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005603 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005604 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005606 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005607 if (p->call_invalid_rules) { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005609 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005610 return NULL;
5611 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005612 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 +03005613 void *invalid_star_etc_var;
5614 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005615 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005616 )
5617 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005618 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 +01005619 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005620 goto done;
5621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005622 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005623 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005626 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005627 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005628 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005629 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005630}
5631
Guido van Rossumc001c092020-04-30 12:12:19 -07005632// kwds: '**' param_no_default
5633static arg_ty
5634kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005635{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005636 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005639 return NULL;
5640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005641 arg_ty _res = NULL;
5642 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005643 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005644 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005645 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005646 return NULL;
5647 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005648 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005649 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005650 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005651 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005652 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005653 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005654 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005655 )
5656 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005657 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 +01005658 _res = a;
5659 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005660 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005661 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005662 return NULL;
5663 }
5664 goto done;
5665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005666 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005667 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005670 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005671 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005672 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005673 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005674}
5675
5676// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5677static arg_ty
5678param_no_default_rule(Parser *p)
5679{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005680 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005681 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005682 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005683 return NULL;
5684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005685 arg_ty _res = NULL;
5686 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005687 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005688 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005689 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005690 return NULL;
5691 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005692 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 +01005693 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005694 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005695 void *tc;
5696 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005697 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005698 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005699 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005700 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005701 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005702 )
5703 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005704 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 +01005705 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5706 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005707 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005709 return NULL;
5710 }
5711 goto done;
5712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005714 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005716 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005717 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005720 return NULL;
5721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005722 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 -07005723 arg_ty a;
5724 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005725 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005726 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005727 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005728 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005729 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005730 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005731 )
5732 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005733 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 +01005734 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5735 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005736 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005737 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005738 return NULL;
5739 }
5740 goto done;
5741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005742 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005743 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005746 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005747 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005748 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005749 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005750}
5751
Guido van Rossumc001c092020-04-30 12:12:19 -07005752// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005753static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005754param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005755{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005756 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005759 return NULL;
5760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005761 NameDefaultPair* _res = NULL;
5762 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005763 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005764 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005765 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005766 return NULL;
5767 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005768 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 +01005769 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005770 arg_ty a;
5771 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005772 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005773 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005774 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005775 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005776 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005777 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005778 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005779 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005780 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005781 )
5782 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005783 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 +01005784 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5785 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005786 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005787 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005788 return NULL;
5789 }
5790 goto done;
5791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005792 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005793 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005795 }
5796 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005797 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005798 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005799 return NULL;
5800 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005801 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 -07005802 arg_ty a;
5803 expr_ty c;
5804 void *tc;
5805 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005806 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005807 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005808 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005810 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005811 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005812 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005813 )
5814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005815 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 +01005816 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5817 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005818 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005820 return NULL;
5821 }
5822 goto done;
5823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005825 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005828 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005829 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005830 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005831 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005832}
5833
Guido van Rossumc001c092020-04-30 12:12:19 -07005834// param_maybe_default:
5835// | param default? ',' TYPE_COMMENT?
5836// | param default? TYPE_COMMENT? &')'
5837static NameDefaultPair*
5838param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005839{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005840 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005843 return NULL;
5844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005845 NameDefaultPair* _res = NULL;
5846 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005847 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005849 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005850 return NULL;
5851 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005852 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 +01005853 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005854 arg_ty a;
5855 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005856 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005857 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005858 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005860 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005861 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005862 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005863 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005864 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005865 )
5866 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005867 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 +01005868 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5869 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005870 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005871 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005872 return NULL;
5873 }
5874 goto done;
5875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005876 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005877 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005879 }
5880 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005881 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005882 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005883 return NULL;
5884 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005885 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 -07005886 arg_ty a;
5887 void *c;
5888 void *tc;
5889 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005890 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005891 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005892 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005893 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005894 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005895 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005896 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005897 )
5898 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005899 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 +01005900 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5901 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005902 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005904 return NULL;
5905 }
5906 goto done;
5907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005908 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005909 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005912 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005913 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005914 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005915 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005916}
5917
Guido van Rossumc001c092020-04-30 12:12:19 -07005918// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005919static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005920param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005921{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005922 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005923 if (p->error_indicator) {
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 arg_ty _res = NULL;
5928 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005929 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5930 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005932 return NULL;
5933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005934 int _start_lineno = p->tokens[_mark]->lineno;
5935 UNUSED(_start_lineno); // Only used by EXTRA macro
5936 int _start_col_offset = p->tokens[_mark]->col_offset;
5937 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005938 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005940 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005941 return NULL;
5942 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005943 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005944 expr_ty a;
5945 void *b;
5946 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005947 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005948 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005949 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005950 )
5951 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005952 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5954 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005956 return NULL;
5957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005958 int _end_lineno = _token->end_lineno;
5959 UNUSED(_end_lineno); // Only used by EXTRA macro
5960 int _end_col_offset = _token->end_col_offset;
5961 UNUSED(_end_col_offset); // Only used by EXTRA macro
5962 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5963 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005964 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005965 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005966 return NULL;
5967 }
5968 goto done;
5969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005970 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005971 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005974 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005975 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005977 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005978}
5979
Guido van Rossumc001c092020-04-30 12:12:19 -07005980// annotation: ':' expression
5981static expr_ty
5982annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005984 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005987 return NULL;
5988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005989 expr_ty _res = NULL;
5990 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005991 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005994 return NULL;
5995 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005996 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005997 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005998 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005999 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006000 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006002 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006003 )
6004 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006005 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006006 _res = a;
6007 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006008 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006010 return NULL;
6011 }
6012 goto done;
6013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006014 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006015 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006018 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006019 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006020 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006021 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006022}
6023
Guido van Rossumc001c092020-04-30 12:12:19 -07006024// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006025static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006026default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006027{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006028 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006030 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006031 return NULL;
6032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006033 expr_ty _res = NULL;
6034 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006035 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006037 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006038 return NULL;
6039 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006040 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006041 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006042 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006043 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006044 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006045 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006046 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006047 )
6048 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006049 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006050 _res = a;
6051 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006052 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006053 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006054 return NULL;
6055 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006056 goto done;
6057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006058 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006059 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006062 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006063 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006064 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006065 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006066}
6067
6068// decorators: (('@' named_expression NEWLINE))+
6069static asdl_seq*
6070decorators_rule(Parser *p)
6071{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006072 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006075 return NULL;
6076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006077 asdl_seq* _res = NULL;
6078 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006079 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006080 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006081 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006082 return NULL;
6083 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006084 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006085 asdl_seq * a;
6086 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006087 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006088 )
6089 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006090 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 +01006091 _res = a;
6092 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006093 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006094 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006095 return NULL;
6096 }
6097 goto done;
6098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006099 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006100 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006103 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006104 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006105 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006106 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006107}
6108
6109// class_def: decorators class_def_raw | class_def_raw
6110static stmt_ty
6111class_def_rule(Parser *p)
6112{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006113 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006116 return NULL;
6117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006118 stmt_ty _res = NULL;
6119 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006120 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006121 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006122 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006123 return NULL;
6124 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006125 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 +01006126 asdl_seq* a;
6127 stmt_ty b;
6128 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006129 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006130 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006131 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006132 )
6133 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006134 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 +01006135 _res = _PyPegen_class_def_decorators ( p , a , b );
6136 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006137 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006139 return NULL;
6140 }
6141 goto done;
6142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006143 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006144 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006146 }
6147 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006148 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006149 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006150 return NULL;
6151 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006152 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 +01006153 stmt_ty class_def_raw_var;
6154 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006155 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006156 )
6157 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006158 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 +01006159 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006160 goto done;
6161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006163 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006166 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006167 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006168 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006169 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006170}
6171
6172// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6173static stmt_ty
6174class_def_raw_rule(Parser *p)
6175{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006176 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006177 if (p->error_indicator) {
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 stmt_ty _res = NULL;
6182 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006183 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6184 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006185 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006186 return NULL;
6187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006188 int _start_lineno = p->tokens[_mark]->lineno;
6189 UNUSED(_start_lineno); // Only used by EXTRA macro
6190 int _start_col_offset = p->tokens[_mark]->col_offset;
6191 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006192 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006194 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006195 return NULL;
6196 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006197 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 +01006198 Token * _keyword;
6199 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006200 expr_ty a;
6201 void *b;
6202 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006203 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006204 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006205 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006206 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006207 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006208 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006209 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006210 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006211 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006212 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006213 )
6214 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006215 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 +01006216 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6217 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006218 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006219 return NULL;
6220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006221 int _end_lineno = _token->end_lineno;
6222 UNUSED(_end_lineno); // Only used by EXTRA macro
6223 int _end_col_offset = _token->end_col_offset;
6224 UNUSED(_end_col_offset); // Only used by EXTRA macro
6225 _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 );
6226 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006227 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006228 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006229 return NULL;
6230 }
6231 goto done;
6232 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006233 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006234 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006237 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006238 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006239 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006240 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006241}
6242
6243// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6244static asdl_seq*
6245block_rule(Parser *p)
6246{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006247 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006249 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006250 return NULL;
6251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006252 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006253 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6254 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006255 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006257 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006258 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006260 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006261 return NULL;
6262 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006263 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 +01006264 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006265 Token * dedent_var;
6266 Token * indent_var;
6267 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006268 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006269 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006270 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006271 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006272 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006273 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006274 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006275 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006276 )
6277 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006278 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 +01006279 _res = a;
6280 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006281 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006283 return NULL;
6284 }
6285 goto done;
6286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006287 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006288 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006290 }
6291 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006294 return NULL;
6295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006296 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006297 asdl_seq* simple_stmt_var;
6298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006299 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006300 )
6301 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006302 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006303 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006304 goto done;
6305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006307 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006309 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02006310 if (p->call_invalid_rules) { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006313 return NULL;
6314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006315 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006316 void *invalid_block_var;
6317 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006318 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006319 )
6320 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006321 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006322 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006323 goto done;
6324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006325 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006326 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006329 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006330 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006331 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006332 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006333 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006334}
6335
6336// expressions_list: ','.star_expression+ ','?
6337static asdl_seq*
6338expressions_list_rule(Parser *p)
6339{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006340 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006342 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006343 return NULL;
6344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006345 asdl_seq* _res = NULL;
6346 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006347 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006348 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006349 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006350 return NULL;
6351 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006352 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006353 void *_opt_var;
6354 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006355 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006356 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006357 (a = _gather_70_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006358 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006359 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006360 )
6361 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006362 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 +01006363 _res = a;
6364 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006365 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006366 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006367 return NULL;
6368 }
6369 goto done;
6370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006371 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006372 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006375 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006376 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006377 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006378 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006379}
6380
6381// star_expressions:
6382// | star_expression ((',' star_expression))+ ','?
6383// | star_expression ','
6384// | star_expression
6385static expr_ty
6386star_expressions_rule(Parser *p)
6387{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006388 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006389 if (p->error_indicator) {
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 expr_ty _res = NULL;
6394 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6396 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006398 return NULL;
6399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006400 int _start_lineno = p->tokens[_mark]->lineno;
6401 UNUSED(_start_lineno); // Only used by EXTRA macro
6402 int _start_col_offset = p->tokens[_mark]->col_offset;
6403 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006404 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006406 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006407 return NULL;
6408 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006409 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 +01006410 void *_opt_var;
6411 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006412 expr_ty a;
6413 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006414 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006415 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006416 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006417 (b = _loop1_72_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006418 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006419 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006420 )
6421 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006422 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 +01006423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6424 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006426 return NULL;
6427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006428 int _end_lineno = _token->end_lineno;
6429 UNUSED(_end_lineno); // Only used by EXTRA macro
6430 int _end_col_offset = _token->end_col_offset;
6431 UNUSED(_end_col_offset); // Only used by EXTRA macro
6432 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6433 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006436 return NULL;
6437 }
6438 goto done;
6439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006441 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006443 }
6444 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006446 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006447 return NULL;
6448 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006449 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006450 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006451 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006452 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006453 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006454 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006455 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006456 )
6457 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006458 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 +01006459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6460 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006461 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006462 return NULL;
6463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006464 int _end_lineno = _token->end_lineno;
6465 UNUSED(_end_lineno); // Only used by EXTRA macro
6466 int _end_col_offset = _token->end_col_offset;
6467 UNUSED(_end_col_offset); // Only used by EXTRA macro
6468 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006472 return NULL;
6473 }
6474 goto done;
6475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006477 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006479 }
6480 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006482 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006483 return NULL;
6484 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006485 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006486 expr_ty star_expression_var;
6487 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006488 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006489 )
6490 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006491 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 +01006492 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006493 goto done;
6494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006495 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006496 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006499 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006500 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006501 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006502 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006503}
6504
6505// star_expression: '*' bitwise_or | expression
6506static expr_ty
6507star_expression_rule(Parser *p)
6508{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006509 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006512 return NULL;
6513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006514 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006515 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6516 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006517 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006519 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6521 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006523 return NULL;
6524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006525 int _start_lineno = p->tokens[_mark]->lineno;
6526 UNUSED(_start_lineno); // Only used by EXTRA macro
6527 int _start_col_offset = p->tokens[_mark]->col_offset;
6528 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006529 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006532 return NULL;
6533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006534 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006535 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006536 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006537 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006538 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006539 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006540 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006541 )
6542 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006543 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 +01006544 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6545 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006547 return NULL;
6548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006549 int _end_lineno = _token->end_lineno;
6550 UNUSED(_end_lineno); // Only used by EXTRA macro
6551 int _end_col_offset = _token->end_col_offset;
6552 UNUSED(_end_col_offset); // Only used by EXTRA macro
6553 _res = _Py_Starred ( a , Load , EXTRA );
6554 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006555 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006557 return NULL;
6558 }
6559 goto done;
6560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006561 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006562 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006564 }
6565 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006567 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006568 return NULL;
6569 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006570 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006571 expr_ty expression_var;
6572 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006573 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006574 )
6575 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006576 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006577 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006578 goto done;
6579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006580 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006581 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006584 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006585 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006586 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006587 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006588 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006589}
6590
6591// star_named_expressions: ','.star_named_expression+ ','?
6592static asdl_seq*
6593star_named_expressions_rule(Parser *p)
6594{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006595 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006596 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006598 return NULL;
6599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006600 asdl_seq* _res = NULL;
6601 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006602 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006605 return NULL;
6606 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006607 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 +01006608 void *_opt_var;
6609 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006610 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006611 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006612 (a = _gather_73_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006613 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006614 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006615 )
6616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006617 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 +01006618 _res = a;
6619 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006620 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006621 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006622 return NULL;
6623 }
6624 goto done;
6625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006626 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006627 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006630 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006631 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006632 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006633 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006634}
6635
6636// star_named_expression: '*' bitwise_or | named_expression
6637static expr_ty
6638star_named_expression_rule(Parser *p)
6639{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006640 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006641 if (p->error_indicator) {
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 expr_ty _res = NULL;
6646 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006647 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6648 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006650 return NULL;
6651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006652 int _start_lineno = p->tokens[_mark]->lineno;
6653 UNUSED(_start_lineno); // Only used by EXTRA macro
6654 int _start_col_offset = p->tokens[_mark]->col_offset;
6655 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006656 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006659 return NULL;
6660 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006661 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 +01006662 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006663 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006664 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006665 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006666 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006667 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006668 )
6669 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006670 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 +01006671 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6672 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006674 return NULL;
6675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006676 int _end_lineno = _token->end_lineno;
6677 UNUSED(_end_lineno); // Only used by EXTRA macro
6678 int _end_col_offset = _token->end_col_offset;
6679 UNUSED(_end_col_offset); // Only used by EXTRA macro
6680 _res = _Py_Starred ( a , Load , EXTRA );
6681 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006682 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006683 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006684 return NULL;
6685 }
6686 goto done;
6687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006689 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006691 }
6692 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006695 return NULL;
6696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006697 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 +01006698 expr_ty named_expression_var;
6699 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006700 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006701 )
6702 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006703 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 +01006704 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006705 goto done;
6706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006707 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006708 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006711 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006712 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006713 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006714 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006715}
6716
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006717// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006718static expr_ty
6719named_expression_rule(Parser *p)
6720{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006721 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006722 if (p->error_indicator) {
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 expr_ty _res = NULL;
6727 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006731 return NULL;
6732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006733 int _start_lineno = p->tokens[_mark]->lineno;
6734 UNUSED(_start_lineno); // Only used by EXTRA macro
6735 int _start_col_offset = p->tokens[_mark]->col_offset;
6736 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006737 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006739 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006740 return NULL;
6741 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006742 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6743 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006744 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006745 expr_ty a;
6746 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006747 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006748 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006749 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006750 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006751 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006752 (_cut_var = 1)
6753 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006754 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006755 )
6756 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006757 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 +01006758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6759 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006760 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006761 return NULL;
6762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006763 int _end_lineno = _token->end_lineno;
6764 UNUSED(_end_lineno); // Only used by EXTRA macro
6765 int _end_col_offset = _token->end_col_offset;
6766 UNUSED(_end_col_offset); // Only used by EXTRA macro
6767 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6768 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006769 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006770 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006771 return NULL;
6772 }
6773 goto done;
6774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006775 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006776 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6778 if (_cut_var) {
6779 D(p->level--);
6780 return NULL;
6781 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006782 }
6783 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006785 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006786 return NULL;
6787 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006788 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006789 expr_ty expression_var;
6790 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006791 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006792 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006793 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006794 )
6795 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006796 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006797 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006798 goto done;
6799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006801 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006803 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02006804 if (p->call_invalid_rules) { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006807 return NULL;
6808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006809 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 +01006810 void *invalid_named_expression_var;
6811 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006812 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006813 )
6814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006815 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 +01006816 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006817 goto done;
6818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006819 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006820 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006823 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006824 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006825 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006826 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006827}
6828
6829// annotated_rhs: yield_expr | star_expressions
6830static expr_ty
6831annotated_rhs_rule(Parser *p)
6832{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006833 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006836 return NULL;
6837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006838 expr_ty _res = NULL;
6839 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006840 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006843 return NULL;
6844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006845 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006846 expr_ty yield_expr_var;
6847 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006848 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006849 )
6850 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006851 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 +01006852 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006853 goto done;
6854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006855 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006856 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006858 }
6859 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006860 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006861 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006862 return NULL;
6863 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006864 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006865 expr_ty star_expressions_var;
6866 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006867 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006868 )
6869 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006870 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 +01006871 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006872 goto done;
6873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006874 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006875 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006878 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006879 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006880 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006881 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006882}
6883
6884// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6885static expr_ty
6886expressions_rule(Parser *p)
6887{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006888 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006889 if (p->error_indicator) {
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 expr_ty _res = NULL;
6894 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006895 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6896 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006898 return NULL;
6899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006900 int _start_lineno = p->tokens[_mark]->lineno;
6901 UNUSED(_start_lineno); // Only used by EXTRA macro
6902 int _start_col_offset = p->tokens[_mark]->col_offset;
6903 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006904 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006907 return NULL;
6908 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006909 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006910 void *_opt_var;
6911 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006912 expr_ty a;
6913 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006914 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006915 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006916 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006917 (b = _loop1_75_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006918 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006919 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006920 )
6921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006922 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6924 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006925 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006926 return NULL;
6927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006928 int _end_lineno = _token->end_lineno;
6929 UNUSED(_end_lineno); // Only used by EXTRA macro
6930 int _end_col_offset = _token->end_col_offset;
6931 UNUSED(_end_col_offset); // Only used by EXTRA macro
6932 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6933 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006934 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006936 return NULL;
6937 }
6938 goto done;
6939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006941 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006943 }
6944 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006946 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006947 return NULL;
6948 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006949 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006950 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006951 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006952 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006953 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006954 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006955 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006956 )
6957 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006958 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6960 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006962 return NULL;
6963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006964 int _end_lineno = _token->end_lineno;
6965 UNUSED(_end_lineno); // Only used by EXTRA macro
6966 int _end_col_offset = _token->end_col_offset;
6967 UNUSED(_end_col_offset); // Only used by EXTRA macro
6968 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6969 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006970 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006971 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006972 return NULL;
6973 }
6974 goto done;
6975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006976 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006977 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006979 }
6980 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006982 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006983 return NULL;
6984 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006985 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006986 expr_ty expression_var;
6987 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006988 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006989 )
6990 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006991 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006992 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006993 goto done;
6994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006996 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006999 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007000 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007001 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007002 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007003}
7004
7005// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
7006static expr_ty
7007expression_rule(Parser *p)
7008{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007009 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007012 return NULL;
7013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007014 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007015 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007017 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007019 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007020 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007023 return NULL;
7024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007025 int _start_lineno = p->tokens[_mark]->lineno;
7026 UNUSED(_start_lineno); // Only used by EXTRA macro
7027 int _start_col_offset = p->tokens[_mark]->col_offset;
7028 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007029 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007031 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007032 return NULL;
7033 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007034 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 +01007035 Token * _keyword;
7036 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007037 expr_ty a;
7038 expr_ty b;
7039 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007040 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007041 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007042 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007043 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007044 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007045 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007046 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007047 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007048 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007049 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007050 )
7051 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007052 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 +01007053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7054 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007056 return NULL;
7057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007058 int _end_lineno = _token->end_lineno;
7059 UNUSED(_end_lineno); // Only used by EXTRA macro
7060 int _end_col_offset = _token->end_col_offset;
7061 UNUSED(_end_col_offset); // Only used by EXTRA macro
7062 _res = _Py_IfExp ( b , a , c , EXTRA );
7063 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007064 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007065 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007066 return NULL;
7067 }
7068 goto done;
7069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007070 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007071 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007073 }
7074 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007076 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007077 return NULL;
7078 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007079 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007080 expr_ty disjunction_var;
7081 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007082 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007083 )
7084 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007085 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007086 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007087 goto done;
7088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007089 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007090 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007092 }
7093 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007095 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007096 return NULL;
7097 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007098 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007099 expr_ty lambdef_var;
7100 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007101 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007102 )
7103 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007104 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007105 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007106 goto done;
7107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007108 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007109 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007112 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007113 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007114 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007115 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007116 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007117}
7118
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007119// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007120static expr_ty
7121lambdef_rule(Parser *p)
7122{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007123 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007124 if (p->error_indicator) {
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 expr_ty _res = NULL;
7129 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007130 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7131 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007132 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007133 return NULL;
7134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007135 int _start_lineno = p->tokens[_mark]->lineno;
7136 UNUSED(_start_lineno); // Only used by EXTRA macro
7137 int _start_col_offset = p->tokens[_mark]->col_offset;
7138 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007139 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007140 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007141 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007142 return NULL;
7143 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007144 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 +01007145 Token * _keyword;
7146 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007147 void *a;
7148 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007149 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007150 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007151 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007152 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007153 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007154 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007155 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007156 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007157 )
7158 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007159 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 +01007160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7161 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007163 return NULL;
7164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007165 int _end_lineno = _token->end_lineno;
7166 UNUSED(_end_lineno); // Only used by EXTRA macro
7167 int _end_col_offset = _token->end_col_offset;
7168 UNUSED(_end_col_offset); // Only used by EXTRA macro
7169 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7170 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007171 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007172 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007173 return NULL;
7174 }
7175 goto done;
7176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007177 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007178 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7180 }
7181 _res = NULL;
7182 done:
7183 D(p->level--);
7184 return _res;
7185}
7186
7187// lambda_params: invalid_lambda_parameters | lambda_parameters
7188static arguments_ty
7189lambda_params_rule(Parser *p)
7190{
7191 D(p->level++);
7192 if (p->error_indicator) {
7193 D(p->level--);
7194 return NULL;
7195 }
7196 arguments_ty _res = NULL;
7197 int _mark = p->mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02007198 if (p->call_invalid_rules) { // invalid_lambda_parameters
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007199 if (p->error_indicator) {
7200 D(p->level--);
7201 return NULL;
7202 }
7203 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7204 void *invalid_lambda_parameters_var;
7205 if (
7206 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7207 )
7208 {
7209 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7210 _res = invalid_lambda_parameters_var;
7211 goto done;
7212 }
7213 p->mark = _mark;
7214 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7216 }
7217 { // lambda_parameters
7218 if (p->error_indicator) {
7219 D(p->level--);
7220 return NULL;
7221 }
7222 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7223 arguments_ty lambda_parameters_var;
7224 if (
7225 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7226 )
7227 {
7228 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7229 _res = lambda_parameters_var;
7230 goto done;
7231 }
7232 p->mark = _mark;
7233 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007236 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007237 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007238 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007239 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007240}
7241
7242// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007243// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7244// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7245// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7246// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007247// | lambda_star_etc
7248static arguments_ty
7249lambda_parameters_rule(Parser *p)
7250{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007251 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007254 return NULL;
7255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007256 arguments_ty _res = NULL;
7257 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007258 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007260 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007261 return NULL;
7262 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007263 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 +01007264 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007265 asdl_seq * b;
7266 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007267 void *d;
7268 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007269 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007270 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007271 (b = _loop0_76_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007272 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007273 (c = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007274 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007275 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007276 )
7277 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007278 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 +01007279 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7280 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007281 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007283 return NULL;
7284 }
7285 goto done;
7286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007287 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007288 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007290 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007291 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007294 return NULL;
7295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007296 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 +01007297 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007298 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007299 void *c;
7300 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007301 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007302 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007303 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007304 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007305 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007306 )
7307 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007308 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 +01007309 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7310 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007311 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007313 return NULL;
7314 }
7315 goto done;
7316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007317 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007318 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007320 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007321 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007322 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007323 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007324 return NULL;
7325 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007326 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 -07007327 asdl_seq * a;
7328 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007329 void *c;
7330 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007331 (a = _loop1_79_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007332 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007333 (b = _loop0_80_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007334 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007335 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007336 )
7337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007338 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 +01007339 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7340 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007341 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007342 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007343 return NULL;
7344 }
7345 goto done;
7346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007347 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007348 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007350 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007351 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007353 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007354 return NULL;
7355 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007356 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 -07007357 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007358 void *b;
7359 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007360 (a = _loop1_81_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007361 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007362 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007363 )
7364 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007365 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 +01007366 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7367 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007368 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007370 return NULL;
7371 }
7372 goto done;
7373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007374 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007375 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007377 }
7378 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007380 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007381 return NULL;
7382 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007383 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 +01007384 StarEtc* a;
7385 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007386 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007387 )
7388 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007389 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 +01007390 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7391 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007392 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007394 return NULL;
7395 }
7396 goto done;
7397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007398 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007399 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007402 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007403 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007404 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007405 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007406}
7407
Guido van Rossum3941d972020-05-01 09:42:03 -07007408// lambda_slash_no_default:
7409// | lambda_param_no_default+ '/' ','
7410// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007411static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007412lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007413{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007414 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007415 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007416 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007417 return NULL;
7418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007419 asdl_seq* _res = NULL;
7420 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007421 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007424 return NULL;
7425 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007426 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 +01007427 Token * _literal;
7428 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007429 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007430 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007431 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007432 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007433 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007434 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007435 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007436 )
7437 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007438 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 +01007439 _res = a;
7440 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007441 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007442 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007443 return NULL;
7444 }
7445 goto done;
7446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007447 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007448 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007450 }
7451 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007453 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007454 return NULL;
7455 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007456 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 +01007457 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007458 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007459 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007460 (a = _loop1_83_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007461 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007462 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007463 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007464 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007465 )
7466 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007467 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 +01007468 _res = a;
7469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007472 return NULL;
7473 }
7474 goto done;
7475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007477 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007480 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007481 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007482 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007483 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007484}
7485
Guido van Rossum3941d972020-05-01 09:42:03 -07007486// lambda_slash_with_default:
7487// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7488// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007489static SlashWithDefault*
7490lambda_slash_with_default_rule(Parser *p)
7491{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007492 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007494 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007495 return NULL;
7496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007497 SlashWithDefault* _res = NULL;
7498 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007499 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007501 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007502 return NULL;
7503 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007504 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 +01007505 Token * _literal;
7506 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007507 asdl_seq * a;
7508 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007509 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007510 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007511 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007512 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007513 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007514 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007515 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007516 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007517 )
7518 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007519 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 +01007520 _res = _PyPegen_slash_with_default ( p , a , b );
7521 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007522 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007523 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007524 return NULL;
7525 }
7526 goto done;
7527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007528 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007529 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007531 }
7532 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007533 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007534 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007535 return NULL;
7536 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007537 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 +01007538 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007539 asdl_seq * a;
7540 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007541 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007542 (a = _loop0_86_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007543 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007544 (b = _loop1_87_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007545 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007546 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007547 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007548 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007549 )
7550 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007551 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 +01007552 _res = _PyPegen_slash_with_default ( p , a , b );
7553 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007554 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007555 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007556 return NULL;
7557 }
7558 goto done;
7559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007560 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007561 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007564 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007565 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007566 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007567 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007568}
7569
7570// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007571// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7572// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7573// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007574// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007575static StarEtc*
7576lambda_star_etc_rule(Parser *p)
7577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007578 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007581 return NULL;
7582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007583 StarEtc* _res = NULL;
7584 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007585 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007587 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007588 return NULL;
7589 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007590 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 +01007591 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007592 arg_ty a;
7593 asdl_seq * b;
7594 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007595 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007596 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007597 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007598 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007599 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007600 (b = _loop0_88_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007601 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007602 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007603 )
7604 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007605 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 +01007606 _res = _PyPegen_star_etc ( p , a , b , c );
7607 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007608 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007609 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007610 return NULL;
7611 }
7612 goto done;
7613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007614 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007615 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007617 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007618 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007621 return NULL;
7622 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007623 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 +01007624 Token * _literal;
7625 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007626 asdl_seq * b;
7627 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007628 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007629 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007630 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007631 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007632 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007633 (b = _loop1_89_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007634 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007635 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007636 )
7637 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007638 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 +01007639 _res = _PyPegen_star_etc ( p , NULL , b , c );
7640 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007643 return NULL;
7644 }
7645 goto done;
7646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007648 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007650 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007651 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007652 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007653 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007654 return NULL;
7655 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007656 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 +01007657 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007658 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007659 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007660 )
7661 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007662 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 +01007663 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7664 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007665 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007667 return NULL;
7668 }
7669 goto done;
7670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007671 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007672 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007674 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02007675 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007678 return NULL;
7679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007680 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 +03007681 void *invalid_lambda_star_etc_var;
7682 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007683 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007684 )
7685 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007686 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 +01007687 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007688 goto done;
7689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007690 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007691 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007694 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007695 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007696 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007697 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007698}
7699
Guido van Rossum3941d972020-05-01 09:42:03 -07007700// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007701static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007702lambda_kwds_rule(Parser *p)
7703{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007704 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007706 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007707 return NULL;
7708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007709 arg_ty _res = NULL;
7710 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007711 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007713 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007714 return NULL;
7715 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007716 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 +01007717 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007718 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007719 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007720 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007721 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007722 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007723 )
7724 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007725 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 +01007726 _res = a;
7727 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007728 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007729 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007730 return NULL;
7731 }
7732 goto done;
7733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007735 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007738 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007741 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007742}
7743
7744// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7745static arg_ty
7746lambda_param_no_default_rule(Parser *p)
7747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007748 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007750 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007751 return NULL;
7752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007753 arg_ty _res = NULL;
7754 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007755 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007758 return NULL;
7759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007760 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 +01007761 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007762 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007763 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007764 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007765 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007766 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007767 )
7768 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007769 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 +01007770 _res = a;
7771 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007772 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007773 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007774 return NULL;
7775 }
7776 goto done;
7777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007778 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007779 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007781 }
7782 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007784 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007785 return NULL;
7786 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007787 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 -07007788 arg_ty a;
7789 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007790 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007791 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007792 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007793 )
7794 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007795 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 +01007796 _res = a;
7797 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007798 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007799 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007800 return NULL;
7801 }
7802 goto done;
7803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007804 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007805 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007808 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007809 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007810 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007811 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007812}
7813
7814// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7815static NameDefaultPair*
7816lambda_param_with_default_rule(Parser *p)
7817{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007818 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007820 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007821 return NULL;
7822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007823 NameDefaultPair* _res = NULL;
7824 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007825 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007827 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007828 return NULL;
7829 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007830 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 +01007831 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007832 arg_ty a;
7833 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007834 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007835 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007836 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007837 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007838 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007839 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007840 )
7841 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007842 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 +01007843 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7844 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007845 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007846 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007847 return NULL;
7848 }
7849 goto done;
7850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007851 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007852 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007854 }
7855 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007856 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007857 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007858 return NULL;
7859 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007860 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 -07007861 arg_ty a;
7862 expr_ty c;
7863 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007864 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007865 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007866 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007867 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007868 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007869 )
7870 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007871 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 +01007872 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7873 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007874 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007875 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007876 return NULL;
7877 }
7878 goto done;
7879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007880 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007881 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007884 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007885 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007886 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007887 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007888}
7889
7890// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7891static NameDefaultPair*
7892lambda_param_maybe_default_rule(Parser *p)
7893{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007894 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007895 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007896 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007897 return NULL;
7898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007899 NameDefaultPair* _res = NULL;
7900 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007901 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007903 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007904 return NULL;
7905 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007906 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 +01007907 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007908 arg_ty a;
7909 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007910 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007911 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007912 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007913 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007914 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007916 )
7917 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007918 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 +01007919 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7920 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007921 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007922 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007923 return NULL;
7924 }
7925 goto done;
7926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007927 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007928 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007930 }
7931 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007932 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007933 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007934 return NULL;
7935 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007936 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 -07007937 arg_ty a;
7938 void *c;
7939 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007940 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007941 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007942 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007943 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007944 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007945 )
7946 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007947 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 +01007948 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7949 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007950 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007951 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007952 return NULL;
7953 }
7954 goto done;
7955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007956 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007957 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007960 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007961 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007962 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007963 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007964}
7965
7966// lambda_param: NAME
7967static arg_ty
7968lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007969{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007970 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007971 if (p->error_indicator) {
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 arg_ty _res = NULL;
7976 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7978 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007980 return NULL;
7981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007982 int _start_lineno = p->tokens[_mark]->lineno;
7983 UNUSED(_start_lineno); // Only used by EXTRA macro
7984 int _start_col_offset = p->tokens[_mark]->col_offset;
7985 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007986 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007987 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007988 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007989 return NULL;
7990 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007991 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007992 expr_ty a;
7993 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007994 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007995 )
7996 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007997 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7999 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008001 return NULL;
8002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008003 int _end_lineno = _token->end_lineno;
8004 UNUSED(_end_lineno); // Only used by EXTRA macro
8005 int _end_col_offset = _token->end_col_offset;
8006 UNUSED(_end_col_offset); // Only used by EXTRA macro
8007 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
8008 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008009 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008011 return NULL;
8012 }
8013 goto done;
8014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008015 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008016 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008019 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008020 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008021 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008022 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008023}
8024
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008025// disjunction: conjunction (('or' conjunction))+ | conjunction
8026static expr_ty
8027disjunction_rule(Parser *p)
8028{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008029 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008032 return NULL;
8033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008034 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008035 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8036 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008037 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008039 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008040 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8041 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008043 return NULL;
8044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008045 int _start_lineno = p->tokens[_mark]->lineno;
8046 UNUSED(_start_lineno); // Only used by EXTRA macro
8047 int _start_col_offset = p->tokens[_mark]->col_offset;
8048 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008049 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008050 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008051 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008052 return NULL;
8053 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008054 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008055 expr_ty a;
8056 asdl_seq * b;
8057 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008058 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008059 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008060 (b = _loop1_90_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008061 )
8062 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008063 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 +01008064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8065 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008067 return NULL;
8068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008069 int _end_lineno = _token->end_lineno;
8070 UNUSED(_end_lineno); // Only used by EXTRA macro
8071 int _end_col_offset = _token->end_col_offset;
8072 UNUSED(_end_col_offset); // Only used by EXTRA macro
8073 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8074 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008075 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008077 return NULL;
8078 }
8079 goto done;
8080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008081 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008082 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008084 }
8085 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008088 return NULL;
8089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008090 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008091 expr_ty conjunction_var;
8092 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008093 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008094 )
8095 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008096 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008097 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008098 goto done;
8099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008101 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008104 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008105 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008106 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008107 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008108 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008109}
8110
8111// conjunction: inversion (('and' inversion))+ | inversion
8112static expr_ty
8113conjunction_rule(Parser *p)
8114{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008115 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008118 return NULL;
8119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008120 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008121 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8122 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008123 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008125 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8127 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008129 return NULL;
8130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008131 int _start_lineno = p->tokens[_mark]->lineno;
8132 UNUSED(_start_lineno); // Only used by EXTRA macro
8133 int _start_col_offset = p->tokens[_mark]->col_offset;
8134 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008135 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008137 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008138 return NULL;
8139 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008140 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008141 expr_ty a;
8142 asdl_seq * b;
8143 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008144 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008145 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008146 (b = _loop1_91_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008147 )
8148 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008149 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 +01008150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8151 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008152 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008153 return NULL;
8154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008155 int _end_lineno = _token->end_lineno;
8156 UNUSED(_end_lineno); // Only used by EXTRA macro
8157 int _end_col_offset = _token->end_col_offset;
8158 UNUSED(_end_col_offset); // Only used by EXTRA macro
8159 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8160 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008161 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008163 return NULL;
8164 }
8165 goto done;
8166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008167 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008168 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008170 }
8171 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008173 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008174 return NULL;
8175 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008176 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008177 expr_ty inversion_var;
8178 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008179 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008180 )
8181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008182 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008183 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008184 goto done;
8185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008186 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008187 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008190 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008191 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008192 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008193 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008194 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008195}
8196
8197// inversion: 'not' inversion | comparison
8198static expr_ty
8199inversion_rule(Parser *p)
8200{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008201 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008202 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008204 return NULL;
8205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008206 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008207 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8208 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008209 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008211 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008212 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8213 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008215 return NULL;
8216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008217 int _start_lineno = p->tokens[_mark]->lineno;
8218 UNUSED(_start_lineno); // Only used by EXTRA macro
8219 int _start_col_offset = p->tokens[_mark]->col_offset;
8220 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008221 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008222 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008223 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008224 return NULL;
8225 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008226 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008227 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008228 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008229 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008230 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008231 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008232 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008233 )
8234 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008235 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008236 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8237 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008238 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008239 return NULL;
8240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008241 int _end_lineno = _token->end_lineno;
8242 UNUSED(_end_lineno); // Only used by EXTRA macro
8243 int _end_col_offset = _token->end_col_offset;
8244 UNUSED(_end_col_offset); // Only used by EXTRA macro
8245 _res = _Py_UnaryOp ( Not , a , EXTRA );
8246 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008247 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008249 return NULL;
8250 }
8251 goto done;
8252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008253 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008254 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008256 }
8257 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008258 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008259 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008260 return NULL;
8261 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008262 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008263 expr_ty comparison_var;
8264 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008265 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008266 )
8267 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008268 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008269 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008270 goto done;
8271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008272 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008273 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008276 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008277 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008278 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008279 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008280 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008281}
8282
8283// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8284static expr_ty
8285comparison_rule(Parser *p)
8286{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008287 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008288 if (p->error_indicator) {
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 expr_ty _res = NULL;
8293 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8295 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008297 return NULL;
8298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008299 int _start_lineno = p->tokens[_mark]->lineno;
8300 UNUSED(_start_lineno); // Only used by EXTRA macro
8301 int _start_col_offset = p->tokens[_mark]->col_offset;
8302 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008303 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008304 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008305 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008306 return NULL;
8307 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008308 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 +01008309 expr_ty a;
8310 asdl_seq * b;
8311 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008312 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008313 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008314 (b = _loop1_92_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008315 )
8316 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008317 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 +01008318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8319 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008321 return NULL;
8322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008323 int _end_lineno = _token->end_lineno;
8324 UNUSED(_end_lineno); // Only used by EXTRA macro
8325 int _end_col_offset = _token->end_col_offset;
8326 UNUSED(_end_col_offset); // Only used by EXTRA macro
8327 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8328 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008329 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008330 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008331 return NULL;
8332 }
8333 goto done;
8334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008335 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008336 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008338 }
8339 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008340 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008341 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008342 return NULL;
8343 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008344 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008345 expr_ty bitwise_or_var;
8346 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008347 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008348 )
8349 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008350 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008351 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008352 goto done;
8353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008354 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008355 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008358 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008359 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008360 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008361 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008362}
8363
8364// compare_op_bitwise_or_pair:
8365// | eq_bitwise_or
8366// | noteq_bitwise_or
8367// | lte_bitwise_or
8368// | lt_bitwise_or
8369// | gte_bitwise_or
8370// | gt_bitwise_or
8371// | notin_bitwise_or
8372// | in_bitwise_or
8373// | isnot_bitwise_or
8374// | is_bitwise_or
8375static CmpopExprPair*
8376compare_op_bitwise_or_pair_rule(Parser *p)
8377{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008378 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008380 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008381 return NULL;
8382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008383 CmpopExprPair* _res = NULL;
8384 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008385 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008388 return NULL;
8389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008390 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 +01008391 CmpopExprPair* eq_bitwise_or_var;
8392 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008393 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008394 )
8395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008396 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 +01008397 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008398 goto done;
8399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008400 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008401 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008403 }
8404 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008406 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008407 return NULL;
8408 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008409 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 +01008410 CmpopExprPair* noteq_bitwise_or_var;
8411 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008412 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008413 )
8414 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008415 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 +01008416 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008417 goto done;
8418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008419 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008420 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008422 }
8423 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008424 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008425 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008426 return NULL;
8427 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008428 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 +01008429 CmpopExprPair* lte_bitwise_or_var;
8430 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008431 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008432 )
8433 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008434 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 +01008435 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008436 goto done;
8437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008438 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008439 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008441 }
8442 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008443 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008444 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008445 return NULL;
8446 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008447 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 +01008448 CmpopExprPair* lt_bitwise_or_var;
8449 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008450 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008451 )
8452 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008453 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 +01008454 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008455 goto done;
8456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008457 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008458 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008460 }
8461 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008462 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008463 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008464 return NULL;
8465 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008466 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 +01008467 CmpopExprPair* gte_bitwise_or_var;
8468 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008469 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008470 )
8471 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008472 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 +01008473 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008474 goto done;
8475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008477 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008479 }
8480 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008482 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008483 return NULL;
8484 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008485 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 +01008486 CmpopExprPair* gt_bitwise_or_var;
8487 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008488 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008489 )
8490 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008491 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 +01008492 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008493 goto done;
8494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008495 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008496 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008498 }
8499 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008501 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008502 return NULL;
8503 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008504 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 +01008505 CmpopExprPair* notin_bitwise_or_var;
8506 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008507 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008508 )
8509 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008510 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 +01008511 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008512 goto done;
8513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008514 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008515 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008517 }
8518 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008521 return NULL;
8522 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008523 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 +01008524 CmpopExprPair* in_bitwise_or_var;
8525 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008526 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008527 )
8528 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008529 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 +01008530 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008531 goto done;
8532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008533 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008534 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008536 }
8537 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008539 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008540 return NULL;
8541 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008542 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 +01008543 CmpopExprPair* isnot_bitwise_or_var;
8544 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008545 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008546 )
8547 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008548 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 +01008549 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008550 goto done;
8551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008552 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008553 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008555 }
8556 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008559 return NULL;
8560 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008561 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 +01008562 CmpopExprPair* is_bitwise_or_var;
8563 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008564 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008565 )
8566 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008567 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 +01008568 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008569 goto done;
8570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008572 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008575 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008576 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008577 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008578 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008579}
8580
8581// eq_bitwise_or: '==' bitwise_or
8582static CmpopExprPair*
8583eq_bitwise_or_rule(Parser *p)
8584{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008585 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008588 return NULL;
8589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008590 CmpopExprPair* _res = NULL;
8591 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008592 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008595 return NULL;
8596 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008597 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 +01008598 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008599 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008600 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008601 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008602 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008603 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008604 )
8605 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008606 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 +01008607 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8608 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008609 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008611 return NULL;
8612 }
8613 goto done;
8614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008616 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008619 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008620 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008621 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008622 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008623}
8624
Pablo Galindo2b74c832020-04-27 18:02:07 +01008625// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008626static CmpopExprPair*
8627noteq_bitwise_or_rule(Parser *p)
8628{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008629 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008632 return NULL;
8633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008634 CmpopExprPair* _res = NULL;
8635 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008636 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008638 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008639 return NULL;
8640 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008641 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 +03008642 void *_tmp_93_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008643 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008644 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008645 (_tmp_93_var = _tmp_93_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008646 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008647 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008648 )
8649 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008650 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 +01008651 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8652 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008653 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008654 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008655 return NULL;
8656 }
8657 goto done;
8658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008659 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008660 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008662 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008663 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008664 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008665 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008666 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008667}
8668
8669// lte_bitwise_or: '<=' bitwise_or
8670static CmpopExprPair*
8671lte_bitwise_or_rule(Parser *p)
8672{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008673 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008675 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008676 return NULL;
8677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008678 CmpopExprPair* _res = NULL;
8679 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008680 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008681 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008682 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008683 return NULL;
8684 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008685 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 +01008686 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008687 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008688 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008689 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008690 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008691 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008692 )
8693 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008694 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 +01008695 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8696 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008697 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008699 return NULL;
8700 }
8701 goto done;
8702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008703 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008704 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008707 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008708 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008709 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008710 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008711}
8712
8713// lt_bitwise_or: '<' bitwise_or
8714static CmpopExprPair*
8715lt_bitwise_or_rule(Parser *p)
8716{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008717 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008720 return NULL;
8721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008722 CmpopExprPair* _res = NULL;
8723 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008724 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008727 return NULL;
8728 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008729 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 +01008730 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008731 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008732 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008733 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008734 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008735 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008736 )
8737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008738 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 +01008739 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8740 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008741 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008743 return NULL;
8744 }
8745 goto done;
8746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008747 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008748 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008751 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008752 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008753 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008754 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008755}
8756
8757// gte_bitwise_or: '>=' bitwise_or
8758static CmpopExprPair*
8759gte_bitwise_or_rule(Parser *p)
8760{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008761 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008763 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008764 return NULL;
8765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008766 CmpopExprPair* _res = NULL;
8767 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008768 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008771 return NULL;
8772 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008773 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 +01008774 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008775 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008776 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008777 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008778 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008779 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008780 )
8781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008782 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 +01008783 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8784 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008785 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008786 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008787 return NULL;
8788 }
8789 goto done;
8790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008791 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008792 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008795 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008796 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008797 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008798 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008799}
8800
8801// gt_bitwise_or: '>' bitwise_or
8802static CmpopExprPair*
8803gt_bitwise_or_rule(Parser *p)
8804{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008805 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008807 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008808 return NULL;
8809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008810 CmpopExprPair* _res = NULL;
8811 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008812 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008813 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008814 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008815 return NULL;
8816 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008817 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 +01008818 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008819 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008820 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008821 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008822 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008823 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008824 )
8825 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008826 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 +01008827 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8828 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008829 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008831 return NULL;
8832 }
8833 goto done;
8834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008835 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008836 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008839 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008840 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008841 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008842 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008843}
8844
8845// notin_bitwise_or: 'not' 'in' bitwise_or
8846static CmpopExprPair*
8847notin_bitwise_or_rule(Parser *p)
8848{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008849 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008851 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008852 return NULL;
8853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008854 CmpopExprPair* _res = NULL;
8855 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008856 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008858 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008859 return NULL;
8860 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008861 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 +01008862 Token * _keyword;
8863 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008864 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008865 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008866 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008867 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008868 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008869 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008870 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008871 )
8872 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008873 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 +01008874 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8875 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008876 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008877 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008878 return NULL;
8879 }
8880 goto done;
8881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008882 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008883 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008886 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008887 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008888 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008889 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008890}
8891
8892// in_bitwise_or: 'in' bitwise_or
8893static CmpopExprPair*
8894in_bitwise_or_rule(Parser *p)
8895{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008896 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008899 return NULL;
8900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008901 CmpopExprPair* _res = NULL;
8902 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008903 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008905 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008906 return NULL;
8907 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008908 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 +01008909 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008910 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008911 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008912 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008913 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008914 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008915 )
8916 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008917 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 +01008918 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8919 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008920 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008921 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008922 return NULL;
8923 }
8924 goto done;
8925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008927 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008930 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008931 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008932 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008933 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008934}
8935
8936// isnot_bitwise_or: 'is' 'not' bitwise_or
8937static CmpopExprPair*
8938isnot_bitwise_or_rule(Parser *p)
8939{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008940 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008942 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008943 return NULL;
8944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008945 CmpopExprPair* _res = NULL;
8946 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008947 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008948 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008949 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008950 return NULL;
8951 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008952 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 +01008953 Token * _keyword;
8954 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008955 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008956 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008957 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008958 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008959 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008961 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008962 )
8963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008964 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 +01008965 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8966 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008967 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008968 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008969 return NULL;
8970 }
8971 goto done;
8972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008973 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008974 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008977 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008978 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008979 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008980 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008981}
8982
8983// is_bitwise_or: 'is' bitwise_or
8984static CmpopExprPair*
8985is_bitwise_or_rule(Parser *p)
8986{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008987 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008990 return NULL;
8991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008992 CmpopExprPair* _res = NULL;
8993 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008994 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008995 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008996 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008997 return NULL;
8998 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008999 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 +01009000 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009001 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009002 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03009003 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009004 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009005 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009006 )
9007 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009008 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 +01009009 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
9010 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009011 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009013 return NULL;
9014 }
9015 goto done;
9016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009017 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009018 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009021 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009022 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009023 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009024 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009025}
9026
9027// Left-recursive
9028// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9029static expr_ty bitwise_or_raw(Parser *);
9030static expr_ty
9031bitwise_or_rule(Parser *p)
9032{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009033 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009034 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009035 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9036 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009037 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009039 int _mark = p->mark;
9040 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009041 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009042 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009043 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009045 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009047 p->mark = _mark;
9048 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009049 if (p->error_indicator)
9050 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009051 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009052 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009053 _resmark = p->mark;
9054 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009056 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009057 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009058 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009059}
9060static expr_ty
9061bitwise_or_raw(Parser *p)
9062{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009063 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009065 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009066 return NULL;
9067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009068 expr_ty _res = NULL;
9069 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009070 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9071 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009072 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009073 return NULL;
9074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009075 int _start_lineno = p->tokens[_mark]->lineno;
9076 UNUSED(_start_lineno); // Only used by EXTRA macro
9077 int _start_col_offset = p->tokens[_mark]->col_offset;
9078 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009079 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009080 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009081 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009082 return NULL;
9083 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009084 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 +01009085 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009086 expr_ty a;
9087 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009088 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009089 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009090 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009091 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009092 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009093 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009094 )
9095 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009096 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 +01009097 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9098 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009099 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009100 return NULL;
9101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009102 int _end_lineno = _token->end_lineno;
9103 UNUSED(_end_lineno); // Only used by EXTRA macro
9104 int _end_col_offset = _token->end_col_offset;
9105 UNUSED(_end_col_offset); // Only used by EXTRA macro
9106 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9107 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009108 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009109 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009110 return NULL;
9111 }
9112 goto done;
9113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009114 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009115 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009117 }
9118 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009121 return NULL;
9122 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009123 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009124 expr_ty bitwise_xor_var;
9125 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009126 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009127 )
9128 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009129 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 +01009130 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009131 goto done;
9132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009133 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009134 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009137 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009138 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009139 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009140 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009141}
9142
9143// Left-recursive
9144// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9145static expr_ty bitwise_xor_raw(Parser *);
9146static expr_ty
9147bitwise_xor_rule(Parser *p)
9148{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009149 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009150 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009151 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9152 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009153 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009155 int _mark = p->mark;
9156 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009157 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009158 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009159 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009160 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009161 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009163 p->mark = _mark;
9164 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009165 if (p->error_indicator)
9166 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009167 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009168 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009169 _resmark = p->mark;
9170 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009172 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009173 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009174 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009175}
9176static expr_ty
9177bitwise_xor_raw(Parser *p)
9178{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009179 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009181 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009182 return NULL;
9183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009184 expr_ty _res = NULL;
9185 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009186 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9187 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009188 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 return NULL;
9190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009191 int _start_lineno = p->tokens[_mark]->lineno;
9192 UNUSED(_start_lineno); // Only used by EXTRA macro
9193 int _start_col_offset = p->tokens[_mark]->col_offset;
9194 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009195 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009197 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009198 return NULL;
9199 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009200 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 +01009201 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009202 expr_ty a;
9203 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009204 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009205 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009207 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009208 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009209 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009210 )
9211 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009212 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 +01009213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9214 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009215 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009216 return NULL;
9217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009218 int _end_lineno = _token->end_lineno;
9219 UNUSED(_end_lineno); // Only used by EXTRA macro
9220 int _end_col_offset = _token->end_col_offset;
9221 UNUSED(_end_col_offset); // Only used by EXTRA macro
9222 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9223 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009224 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009226 return NULL;
9227 }
9228 goto done;
9229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009230 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009231 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009233 }
9234 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009236 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009237 return NULL;
9238 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009239 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009240 expr_ty bitwise_and_var;
9241 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009242 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009243 )
9244 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009245 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 +01009246 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009247 goto done;
9248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009249 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009250 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009253 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009254 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009255 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009256 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009257}
9258
9259// Left-recursive
9260// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9261static expr_ty bitwise_and_raw(Parser *);
9262static expr_ty
9263bitwise_and_rule(Parser *p)
9264{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009265 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009266 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009267 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9268 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009269 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009271 int _mark = p->mark;
9272 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009273 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009274 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009275 if (tmpvar_3) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009279 p->mark = _mark;
9280 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009281 if (p->error_indicator)
9282 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009283 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009284 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009285 _resmark = p->mark;
9286 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009288 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009289 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009290 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009291}
9292static expr_ty
9293bitwise_and_raw(Parser *p)
9294{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009295 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009296 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009298 return NULL;
9299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009300 expr_ty _res = NULL;
9301 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009302 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9303 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009305 return NULL;
9306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009307 int _start_lineno = p->tokens[_mark]->lineno;
9308 UNUSED(_start_lineno); // Only used by EXTRA macro
9309 int _start_col_offset = p->tokens[_mark]->col_offset;
9310 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009311 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009314 return NULL;
9315 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009316 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 +01009317 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009318 expr_ty a;
9319 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009320 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009321 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009322 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009323 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009324 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009325 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009326 )
9327 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009328 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 +01009329 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9330 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009332 return NULL;
9333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009334 int _end_lineno = _token->end_lineno;
9335 UNUSED(_end_lineno); // Only used by EXTRA macro
9336 int _end_col_offset = _token->end_col_offset;
9337 UNUSED(_end_col_offset); // Only used by EXTRA macro
9338 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9339 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009340 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009342 return NULL;
9343 }
9344 goto done;
9345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009346 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009347 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009349 }
9350 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009352 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009353 return NULL;
9354 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009355 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009356 expr_ty shift_expr_var;
9357 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009358 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009359 )
9360 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009361 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 +01009362 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009363 goto done;
9364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009365 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009366 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009369 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009370 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009371 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009372 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009373}
9374
9375// Left-recursive
9376// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9377static expr_ty shift_expr_raw(Parser *);
9378static expr_ty
9379shift_expr_rule(Parser *p)
9380{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009381 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009382 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009383 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9384 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009385 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009387 int _mark = p->mark;
9388 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009389 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009390 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009391 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009392 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009393 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009395 p->mark = _mark;
9396 void *_raw = shift_expr_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009397 if (p->error_indicator)
9398 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009399 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009400 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009401 _resmark = p->mark;
9402 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009404 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009405 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009406 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009407}
9408static expr_ty
9409shift_expr_raw(Parser *p)
9410{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009411 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009413 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009414 return NULL;
9415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009416 expr_ty _res = NULL;
9417 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009418 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009421 return NULL;
9422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009423 int _start_lineno = p->tokens[_mark]->lineno;
9424 UNUSED(_start_lineno); // Only used by EXTRA macro
9425 int _start_col_offset = p->tokens[_mark]->col_offset;
9426 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009427 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009428 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009429 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009430 return NULL;
9431 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009432 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 +01009433 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009434 expr_ty a;
9435 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009436 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009437 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009438 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009439 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009440 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009441 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009442 )
9443 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009444 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 +01009445 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9446 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009447 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009448 return NULL;
9449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009450 int _end_lineno = _token->end_lineno;
9451 UNUSED(_end_lineno); // Only used by EXTRA macro
9452 int _end_col_offset = _token->end_col_offset;
9453 UNUSED(_end_col_offset); // Only used by EXTRA macro
9454 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9455 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009456 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009457 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009458 return NULL;
9459 }
9460 goto done;
9461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009462 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009463 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009465 }
9466 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009467 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009468 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009469 return NULL;
9470 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009471 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 +01009472 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009473 expr_ty a;
9474 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009475 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009476 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009477 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009478 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009479 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009480 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009481 )
9482 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009483 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 +01009484 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9485 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009486 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009487 return NULL;
9488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009489 int _end_lineno = _token->end_lineno;
9490 UNUSED(_end_lineno); // Only used by EXTRA macro
9491 int _end_col_offset = _token->end_col_offset;
9492 UNUSED(_end_col_offset); // Only used by EXTRA macro
9493 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9494 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009495 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009497 return NULL;
9498 }
9499 goto done;
9500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009502 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504 }
9505 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009507 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009508 return NULL;
9509 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009510 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009511 expr_ty sum_var;
9512 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009513 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009514 )
9515 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009516 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009517 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009518 goto done;
9519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009520 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009521 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009524 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009525 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009526 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009527 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009528}
9529
9530// Left-recursive
9531// sum: sum '+' term | sum '-' term | term
9532static expr_ty sum_raw(Parser *);
9533static expr_ty
9534sum_rule(Parser *p)
9535{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009536 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009537 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009538 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9539 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009540 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009542 int _mark = p->mark;
9543 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009544 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009545 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009546 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009547 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009548 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009550 p->mark = _mark;
9551 void *_raw = sum_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009552 if (p->error_indicator)
9553 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009554 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009555 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009556 _resmark = p->mark;
9557 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009559 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009560 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009561 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009562}
9563static expr_ty
9564sum_raw(Parser *p)
9565{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009566 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009567 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009569 return NULL;
9570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009571 expr_ty _res = NULL;
9572 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9574 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009576 return NULL;
9577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009578 int _start_lineno = p->tokens[_mark]->lineno;
9579 UNUSED(_start_lineno); // Only used by EXTRA macro
9580 int _start_col_offset = p->tokens[_mark]->col_offset;
9581 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009582 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009584 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009585 return NULL;
9586 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009587 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009588 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009589 expr_ty a;
9590 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009591 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009592 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009593 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009594 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009595 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009596 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009597 )
9598 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009599 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009600 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9601 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009603 return NULL;
9604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009605 int _end_lineno = _token->end_lineno;
9606 UNUSED(_end_lineno); // Only used by EXTRA macro
9607 int _end_col_offset = _token->end_col_offset;
9608 UNUSED(_end_col_offset); // Only used by EXTRA macro
9609 _res = _Py_BinOp ( a , Add , b , EXTRA );
9610 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009611 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009612 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009613 return NULL;
9614 }
9615 goto done;
9616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009617 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009618 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009620 }
9621 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009623 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009624 return NULL;
9625 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009626 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009627 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009628 expr_ty a;
9629 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009630 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009631 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009632 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009633 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009634 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009635 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009636 )
9637 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009638 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9640 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009641 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009642 return NULL;
9643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009644 int _end_lineno = _token->end_lineno;
9645 UNUSED(_end_lineno); // Only used by EXTRA macro
9646 int _end_col_offset = _token->end_col_offset;
9647 UNUSED(_end_col_offset); // Only used by EXTRA macro
9648 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9649 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009650 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009652 return NULL;
9653 }
9654 goto done;
9655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009657 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009659 }
9660 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009663 return NULL;
9664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009665 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009666 expr_ty term_var;
9667 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009668 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009669 )
9670 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009671 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009672 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009673 goto done;
9674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009675 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009676 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009679 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009680 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009681 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009682 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009683}
9684
9685// Left-recursive
9686// term:
9687// | term '*' factor
9688// | term '/' factor
9689// | term '//' factor
9690// | term '%' factor
9691// | term '@' factor
9692// | factor
9693static expr_ty term_raw(Parser *);
9694static expr_ty
9695term_rule(Parser *p)
9696{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009697 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009698 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009699 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9700 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009701 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009703 int _mark = p->mark;
9704 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009705 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009706 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009707 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009708 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009709 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009711 p->mark = _mark;
9712 void *_raw = term_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009713 if (p->error_indicator)
9714 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009715 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009716 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009717 _resmark = p->mark;
9718 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009720 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009721 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009722 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009723}
9724static expr_ty
9725term_raw(Parser *p)
9726{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009727 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009729 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009730 return NULL;
9731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009732 expr_ty _res = NULL;
9733 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009734 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9735 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009736 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009737 return NULL;
9738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009739 int _start_lineno = p->tokens[_mark]->lineno;
9740 UNUSED(_start_lineno); // Only used by EXTRA macro
9741 int _start_col_offset = p->tokens[_mark]->col_offset;
9742 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009743 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009745 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009746 return NULL;
9747 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009748 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009749 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009750 expr_ty a;
9751 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009752 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009753 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009754 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009755 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009756 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009757 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009758 )
9759 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009760 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9762 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009763 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009764 return NULL;
9765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009766 int _end_lineno = _token->end_lineno;
9767 UNUSED(_end_lineno); // Only used by EXTRA macro
9768 int _end_col_offset = _token->end_col_offset;
9769 UNUSED(_end_col_offset); // Only used by EXTRA macro
9770 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9771 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009772 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009774 return NULL;
9775 }
9776 goto done;
9777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009778 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009779 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009781 }
9782 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009784 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009785 return NULL;
9786 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009787 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009788 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009789 expr_ty a;
9790 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009791 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009792 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009793 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009794 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009796 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009797 )
9798 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009799 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009800 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9801 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009803 return NULL;
9804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009805 int _end_lineno = _token->end_lineno;
9806 UNUSED(_end_lineno); // Only used by EXTRA macro
9807 int _end_col_offset = _token->end_col_offset;
9808 UNUSED(_end_col_offset); // Only used by EXTRA macro
9809 _res = _Py_BinOp ( a , Div , b , EXTRA );
9810 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009813 return NULL;
9814 }
9815 goto done;
9816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009818 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009820 }
9821 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009824 return NULL;
9825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009826 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009827 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009828 expr_ty a;
9829 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009830 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009831 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009832 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009833 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009834 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009835 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009836 )
9837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009838 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9840 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009841 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009842 return NULL;
9843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009844 int _end_lineno = _token->end_lineno;
9845 UNUSED(_end_lineno); // Only used by EXTRA macro
9846 int _end_col_offset = _token->end_col_offset;
9847 UNUSED(_end_col_offset); // Only used by EXTRA macro
9848 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9849 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009850 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009851 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009852 return NULL;
9853 }
9854 goto done;
9855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009856 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009857 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009859 }
9860 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009862 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009863 return NULL;
9864 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009865 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009866 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009867 expr_ty a;
9868 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009869 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009870 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009871 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009872 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009873 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009874 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009875 )
9876 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009877 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9879 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009880 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009881 return NULL;
9882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009883 int _end_lineno = _token->end_lineno;
9884 UNUSED(_end_lineno); // Only used by EXTRA macro
9885 int _end_col_offset = _token->end_col_offset;
9886 UNUSED(_end_col_offset); // Only used by EXTRA macro
9887 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9888 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009889 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009891 return NULL;
9892 }
9893 goto done;
9894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009895 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009896 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009898 }
9899 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009902 return NULL;
9903 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009904 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009905 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009906 expr_ty a;
9907 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009908 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009909 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009910 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009911 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009912 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009913 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009914 )
9915 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009916 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009917 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9918 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009919 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009920 return NULL;
9921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009922 int _end_lineno = _token->end_lineno;
9923 UNUSED(_end_lineno); // Only used by EXTRA macro
9924 int _end_col_offset = _token->end_col_offset;
9925 UNUSED(_end_col_offset); // Only used by EXTRA macro
9926 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9927 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009928 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009930 return NULL;
9931 }
9932 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, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009937 }
9938 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009940 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009941 return NULL;
9942 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009943 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009944 expr_ty factor_var;
9945 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009946 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009947 )
9948 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009949 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009950 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009951 goto done;
9952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009953 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009954 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009957 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009958 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009959 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009960 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009961}
9962
9963// factor: '+' factor | '-' factor | '~' factor | power
9964static expr_ty
9965factor_rule(Parser *p)
9966{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009967 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009969 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009970 return NULL;
9971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009972 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009973 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9974 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009975 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009977 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9979 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009981 return NULL;
9982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009983 int _start_lineno = p->tokens[_mark]->lineno;
9984 UNUSED(_start_lineno); // Only used by EXTRA macro
9985 int _start_col_offset = p->tokens[_mark]->col_offset;
9986 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009987 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009989 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009990 return NULL;
9991 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009992 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009993 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009994 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009995 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009996 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009998 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009999 )
10000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010001 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10003 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010005 return NULL;
10006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010007 int _end_lineno = _token->end_lineno;
10008 UNUSED(_end_lineno); // Only used by EXTRA macro
10009 int _end_col_offset = _token->end_col_offset;
10010 UNUSED(_end_col_offset); // Only used by EXTRA macro
10011 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
10012 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010013 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010015 return NULL;
10016 }
10017 goto done;
10018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010019 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010020 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010022 }
10023 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010025 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010026 return NULL;
10027 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010028 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010029 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010030 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010031 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010032 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010033 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010034 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010035 )
10036 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010037 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10039 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010040 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010041 return NULL;
10042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010043 int _end_lineno = _token->end_lineno;
10044 UNUSED(_end_lineno); // Only used by EXTRA macro
10045 int _end_col_offset = _token->end_col_offset;
10046 UNUSED(_end_col_offset); // Only used by EXTRA macro
10047 _res = _Py_UnaryOp ( USub , a , EXTRA );
10048 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010049 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010050 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010051 return NULL;
10052 }
10053 goto done;
10054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010055 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010056 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010058 }
10059 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010061 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010062 return NULL;
10063 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010064 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010065 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010066 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010067 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010068 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010069 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010070 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010071 )
10072 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010073 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010074 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10075 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010077 return NULL;
10078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010079 int _end_lineno = _token->end_lineno;
10080 UNUSED(_end_lineno); // Only used by EXTRA macro
10081 int _end_col_offset = _token->end_col_offset;
10082 UNUSED(_end_col_offset); // Only used by EXTRA macro
10083 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10084 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010085 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010086 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010087 return NULL;
10088 }
10089 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, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010094 }
10095 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010098 return NULL;
10099 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010100 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010101 expr_ty power_var;
10102 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010103 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010104 )
10105 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010106 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010107 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010108 goto done;
10109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010110 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010111 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010114 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010115 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010116 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010117 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010118 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010119}
10120
10121// power: await_primary '**' factor | await_primary
10122static expr_ty
10123power_rule(Parser *p)
10124{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010125 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010128 return NULL;
10129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010130 expr_ty _res = NULL;
10131 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10133 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010134 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010135 return NULL;
10136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010137 int _start_lineno = p->tokens[_mark]->lineno;
10138 UNUSED(_start_lineno); // Only used by EXTRA macro
10139 int _start_col_offset = p->tokens[_mark]->col_offset;
10140 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010141 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010142 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010143 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010144 return NULL;
10145 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010146 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010147 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010148 expr_ty a;
10149 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010150 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010151 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010152 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010153 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010154 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010155 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010156 )
10157 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010158 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 +010010159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10160 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010162 return NULL;
10163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010164 int _end_lineno = _token->end_lineno;
10165 UNUSED(_end_lineno); // Only used by EXTRA macro
10166 int _end_col_offset = _token->end_col_offset;
10167 UNUSED(_end_col_offset); // Only used by EXTRA macro
10168 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10169 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010170 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010171 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010172 return NULL;
10173 }
10174 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 '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010179 }
10180 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010182 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010183 return NULL;
10184 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010185 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010186 expr_ty await_primary_var;
10187 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010188 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010189 )
10190 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010191 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010192 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010193 goto done;
10194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010195 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010196 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010199 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010200 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010201 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010202 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010203}
10204
10205// await_primary: AWAIT primary | primary
10206static expr_ty
10207await_primary_rule(Parser *p)
10208{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010209 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010211 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010212 return NULL;
10213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010214 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010215 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10216 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010217 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010219 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10221 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010222 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010223 return NULL;
10224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010225 int _start_lineno = p->tokens[_mark]->lineno;
10226 UNUSED(_start_lineno); // Only used by EXTRA macro
10227 int _start_col_offset = p->tokens[_mark]->col_offset;
10228 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010229 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010232 return NULL;
10233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010234 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010235 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010236 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010237 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010238 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010239 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010240 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010241 )
10242 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010243 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 +010010244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10245 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010247 return NULL;
10248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010249 int _end_lineno = _token->end_lineno;
10250 UNUSED(_end_lineno); // Only used by EXTRA macro
10251 int _end_col_offset = _token->end_col_offset;
10252 UNUSED(_end_col_offset); // Only used by EXTRA macro
10253 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10254 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010255 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010256 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010257 return NULL;
10258 }
10259 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, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010264 }
10265 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010268 return NULL;
10269 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010270 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010271 expr_ty primary_var;
10272 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010273 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010274 )
10275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010276 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010277 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010278 goto done;
10279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010280 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010281 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010284 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010285 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010286 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010287 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010288 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010289}
10290
10291// Left-recursive
10292// primary:
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020010293// | invalid_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010294// | primary '.' NAME
10295// | primary genexp
10296// | primary '(' arguments? ')'
10297// | primary '[' slices ']'
10298// | atom
10299static expr_ty primary_raw(Parser *);
10300static expr_ty
10301primary_rule(Parser *p)
10302{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010303 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010304 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010305 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10306 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010307 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010309 int _mark = p->mark;
10310 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010311 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010312 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010313 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010314 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010315 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010317 p->mark = _mark;
10318 void *_raw = primary_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +020010319 if (p->error_indicator)
10320 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010321 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010322 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010323 _resmark = p->mark;
10324 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010326 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010327 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010328 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010329}
10330static expr_ty
10331primary_raw(Parser *p)
10332{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010333 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010336 return NULL;
10337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010338 expr_ty _res = NULL;
10339 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010340 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10341 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010342 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010343 return NULL;
10344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010345 int _start_lineno = p->tokens[_mark]->lineno;
10346 UNUSED(_start_lineno); // Only used by EXTRA macro
10347 int _start_col_offset = p->tokens[_mark]->col_offset;
10348 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020010349 if (p->call_invalid_rules) { // invalid_primary
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020010350 if (p->error_indicator) {
10351 D(p->level--);
10352 return NULL;
10353 }
10354 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10355 void *invalid_primary_var;
10356 if (
10357 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10358 )
10359 {
10360 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10361 _res = invalid_primary_var;
10362 goto done;
10363 }
10364 p->mark = _mark;
10365 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10367 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010368 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010369 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010370 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010371 return NULL;
10372 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010373 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010374 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010375 expr_ty a;
10376 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010377 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010378 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010379 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010380 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010381 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010382 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010383 )
10384 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010385 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10387 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010389 return NULL;
10390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010391 int _end_lineno = _token->end_lineno;
10392 UNUSED(_end_lineno); // Only used by EXTRA macro
10393 int _end_col_offset = _token->end_col_offset;
10394 UNUSED(_end_col_offset); // Only used by EXTRA macro
10395 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10396 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010397 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010398 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010399 return NULL;
10400 }
10401 goto done;
10402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010403 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010404 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010406 }
10407 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010410 return NULL;
10411 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010412 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010413 expr_ty a;
10414 expr_ty b;
10415 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010416 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010417 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010418 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010419 )
10420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010421 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10423 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010425 return NULL;
10426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010427 int _end_lineno = _token->end_lineno;
10428 UNUSED(_end_lineno); // Only used by EXTRA macro
10429 int _end_col_offset = _token->end_col_offset;
10430 UNUSED(_end_col_offset); // Only used by EXTRA macro
10431 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10432 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010433 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010434 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010435 return NULL;
10436 }
10437 goto done;
10438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010439 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010440 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010442 }
10443 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010444 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010445 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010446 return NULL;
10447 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010448 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010449 Token * _literal;
10450 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010451 expr_ty a;
10452 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010453 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010454 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010455 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010456 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010457 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010458 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010459 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010460 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010461 )
10462 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010463 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010464 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10465 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010466 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010467 return NULL;
10468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010469 int _end_lineno = _token->end_lineno;
10470 UNUSED(_end_lineno); // Only used by EXTRA macro
10471 int _end_col_offset = _token->end_col_offset;
10472 UNUSED(_end_col_offset); // Only used by EXTRA macro
10473 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10474 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010477 return NULL;
10478 }
10479 goto done;
10480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010481 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010482 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010484 }
10485 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010486 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010487 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010488 return NULL;
10489 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010490 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010491 Token * _literal;
10492 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010493 expr_ty a;
10494 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010495 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010496 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010497 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010498 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010499 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010500 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010501 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010502 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010503 )
10504 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010505 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010506 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10507 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010508 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010509 return NULL;
10510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010511 int _end_lineno = _token->end_lineno;
10512 UNUSED(_end_lineno); // Only used by EXTRA macro
10513 int _end_col_offset = _token->end_col_offset;
10514 UNUSED(_end_col_offset); // Only used by EXTRA macro
10515 _res = _Py_Subscript ( a , b , Load , EXTRA );
10516 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010517 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010519 return NULL;
10520 }
10521 goto done;
10522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010523 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010524 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010526 }
10527 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010530 return NULL;
10531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010532 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010533 expr_ty atom_var;
10534 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010535 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010536 )
10537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010538 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010539 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010540 goto done;
10541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010543 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010546 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010547 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010548 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010549 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010550}
10551
10552// slices: slice !',' | ','.slice+ ','?
10553static expr_ty
10554slices_rule(Parser *p)
10555{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010556 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010559 return NULL;
10560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010561 expr_ty _res = NULL;
10562 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010563 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10564 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010565 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010566 return NULL;
10567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010568 int _start_lineno = p->tokens[_mark]->lineno;
10569 UNUSED(_start_lineno); // Only used by EXTRA macro
10570 int _start_col_offset = p->tokens[_mark]->col_offset;
10571 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010572 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010575 return NULL;
10576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010577 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010578 expr_ty a;
10579 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010580 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010581 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010582 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010583 )
10584 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010585 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010586 _res = a;
10587 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010588 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010590 return NULL;
10591 }
10592 goto done;
10593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010594 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010595 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010597 }
10598 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010601 return NULL;
10602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010603 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010604 void *_opt_var;
10605 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010606 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010607 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010608 (a = _gather_94_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010609 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010610 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010611 )
10612 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010613 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10615 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010616 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010617 return NULL;
10618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010619 int _end_lineno = _token->end_lineno;
10620 UNUSED(_end_lineno); // Only used by EXTRA macro
10621 int _end_col_offset = _token->end_col_offset;
10622 UNUSED(_end_col_offset); // Only used by EXTRA macro
10623 _res = _Py_Tuple ( a , Load , EXTRA );
10624 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010625 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010626 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010627 return NULL;
10628 }
10629 goto done;
10630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010631 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010632 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010635 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010636 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010637 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010638 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010639}
10640
10641// slice: expression? ':' expression? [':' expression?] | expression
10642static expr_ty
10643slice_rule(Parser *p)
10644{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010645 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010647 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010648 return NULL;
10649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010650 expr_ty _res = NULL;
10651 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010652 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10653 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010654 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010655 return NULL;
10656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010657 int _start_lineno = p->tokens[_mark]->lineno;
10658 UNUSED(_start_lineno); // Only used by EXTRA macro
10659 int _start_col_offset = p->tokens[_mark]->col_offset;
10660 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010661 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010663 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010664 return NULL;
10665 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010666 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010667 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010668 void *a;
10669 void *b;
10670 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010672 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010673 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010674 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010676 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010677 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010678 (c = _tmp_96_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010679 )
10680 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010681 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 +010010682 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10683 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010684 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010685 return NULL;
10686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010687 int _end_lineno = _token->end_lineno;
10688 UNUSED(_end_lineno); // Only used by EXTRA macro
10689 int _end_col_offset = _token->end_col_offset;
10690 UNUSED(_end_col_offset); // Only used by EXTRA macro
10691 _res = _Py_Slice ( a , b , c , EXTRA );
10692 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010693 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010694 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010695 return NULL;
10696 }
10697 goto done;
10698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010699 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010700 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010702 }
10703 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010704 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010705 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010706 return NULL;
10707 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010708 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010709 expr_ty a;
10710 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010711 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010712 )
10713 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010714 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010715 _res = a;
10716 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010719 return NULL;
10720 }
10721 goto done;
10722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010723 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010724 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010727 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010728 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010729 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010730 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010731}
10732
10733// atom:
10734// | NAME
10735// | 'True'
10736// | 'False'
10737// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010738// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010739// | &STRING strings
10740// | NUMBER
10741// | &'(' (tuple | group | genexp)
10742// | &'[' (list | listcomp)
10743// | &'{' (dict | set | dictcomp | setcomp)
10744// | '...'
10745static expr_ty
10746atom_rule(Parser *p)
10747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010751 return NULL;
10752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010753 expr_ty _res = NULL;
10754 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010755 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10756 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010758 return NULL;
10759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010760 int _start_lineno = p->tokens[_mark]->lineno;
10761 UNUSED(_start_lineno); // Only used by EXTRA macro
10762 int _start_col_offset = p->tokens[_mark]->col_offset;
10763 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010764 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010766 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010767 return NULL;
10768 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010769 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010770 expr_ty name_var;
10771 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010772 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010773 )
10774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010775 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010776 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010777 goto done;
10778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010780 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010782 }
10783 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010785 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010786 return NULL;
10787 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010788 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010789 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010790 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010791 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010792 )
10793 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010794 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010795 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10796 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010797 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010798 return NULL;
10799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010800 int _end_lineno = _token->end_lineno;
10801 UNUSED(_end_lineno); // Only used by EXTRA macro
10802 int _end_col_offset = _token->end_col_offset;
10803 UNUSED(_end_col_offset); // Only used by EXTRA macro
10804 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10805 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010806 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010807 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010808 return NULL;
10809 }
10810 goto done;
10811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010812 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010813 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010815 }
10816 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010817 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010818 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010819 return NULL;
10820 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010821 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010822 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010823 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010824 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010825 )
10826 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010827 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10829 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010831 return NULL;
10832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010833 int _end_lineno = _token->end_lineno;
10834 UNUSED(_end_lineno); // Only used by EXTRA macro
10835 int _end_col_offset = _token->end_col_offset;
10836 UNUSED(_end_col_offset); // Only used by EXTRA macro
10837 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10838 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010839 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010841 return NULL;
10842 }
10843 goto done;
10844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010845 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010846 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010848 }
10849 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010851 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010852 return NULL;
10853 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010854 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010855 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010856 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010857 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010858 )
10859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010860 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010861 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10862 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010863 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010864 return NULL;
10865 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010866 int _end_lineno = _token->end_lineno;
10867 UNUSED(_end_lineno); // Only used by EXTRA macro
10868 int _end_col_offset = _token->end_col_offset;
10869 UNUSED(_end_col_offset); // Only used by EXTRA macro
10870 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10871 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010872 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010873 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010874 return NULL;
10875 }
10876 goto done;
10877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010878 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010879 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010881 }
Pablo Galindo37824972020-06-11 19:29:13 +010010882 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010884 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010885 return NULL;
10886 }
Pablo Galindo37824972020-06-11 19:29:13 +010010887 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010888 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010889 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010890 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010891 )
10892 {
Pablo Galindo37824972020-06-11 19:29:13 +010010893 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010894 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10895 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010896 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010898 return NULL;
10899 }
10900 goto done;
10901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010902 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010903 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010905 }
10906 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010908 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010909 return NULL;
10910 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010911 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010912 expr_ty strings_var;
10913 if (
10914 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10915 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010916 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010917 )
10918 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010919 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010920 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010921 goto done;
10922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010923 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010924 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010926 }
10927 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010929 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010930 return NULL;
10931 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010932 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010933 expr_ty number_var;
10934 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010935 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010936 )
10937 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010938 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010939 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010940 goto done;
10941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010942 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010943 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010945 }
10946 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010947 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010948 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010949 return NULL;
10950 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010951 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010952 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010953 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010954 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010955 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010956 (_tmp_97_var = _tmp_97_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010957 )
10958 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010959 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 +030010960 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010961 goto done;
10962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010963 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010964 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010966 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010967 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010969 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010970 return NULL;
10971 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010972 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010973 void *_tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010974 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010975 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010976 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010977 (_tmp_98_var = _tmp_98_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010978 )
10979 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010980 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010981 _res = _tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010982 goto done;
10983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010984 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010985 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010987 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010988 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010990 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010991 return NULL;
10992 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010993 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 +030010994 void *_tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010995 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010996 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010997 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010998 (_tmp_99_var = _tmp_99_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010999 )
11000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011001 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 +030011002 _res = _tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010011003 goto done;
11004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011005 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011006 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010011008 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011009 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011011 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011012 return NULL;
11013 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011014 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011015 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011016 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011017 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011018 )
11019 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011020 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011021 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11022 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011024 return NULL;
11025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011026 int _end_lineno = _token->end_lineno;
11027 UNUSED(_end_lineno); // Only used by EXTRA macro
11028 int _end_col_offset = _token->end_col_offset;
11029 UNUSED(_end_col_offset); // Only used by EXTRA macro
11030 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
11031 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011032 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011034 return NULL;
11035 }
11036 goto done;
11037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011039 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011042 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011043 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011045 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011046}
11047
11048// strings: STRING+
11049static expr_ty
11050strings_rule(Parser *p)
11051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011052 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011055 return NULL;
11056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011057 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011058 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11059 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011060 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011062 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011063 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011065 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011066 return NULL;
11067 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011068 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011069 asdl_seq * a;
11070 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011071 (a = _loop1_100_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011072 )
11073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011074 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011075 _res = _PyPegen_concatenate_strings ( p , a );
11076 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011077 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011079 return NULL;
11080 }
11081 goto done;
11082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011083 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011084 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011087 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011088 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011089 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011090 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011091 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011092}
11093
11094// list: '[' star_named_expressions? ']'
11095static expr_ty
11096list_rule(Parser *p)
11097{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011098 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011100 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011101 return NULL;
11102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011103 expr_ty _res = NULL;
11104 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011105 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11106 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011107 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011108 return NULL;
11109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011110 int _start_lineno = p->tokens[_mark]->lineno;
11111 UNUSED(_start_lineno); // Only used by EXTRA macro
11112 int _start_col_offset = p->tokens[_mark]->col_offset;
11113 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011114 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011115 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011116 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011117 return NULL;
11118 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011119 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011120 Token * _literal;
11121 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011122 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011123 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011124 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011125 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011126 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011127 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011128 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011129 )
11130 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011131 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 +010011132 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11133 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011134 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011135 return NULL;
11136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011137 int _end_lineno = _token->end_lineno;
11138 UNUSED(_end_lineno); // Only used by EXTRA macro
11139 int _end_col_offset = _token->end_col_offset;
11140 UNUSED(_end_col_offset); // Only used by EXTRA macro
11141 _res = _Py_List ( a , Load , EXTRA );
11142 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011143 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011144 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011145 return NULL;
11146 }
11147 goto done;
11148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011149 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011150 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011153 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011154 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011155 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011156 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011157}
11158
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011159// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011160static expr_ty
11161listcomp_rule(Parser *p)
11162{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011163 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011164 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011166 return NULL;
11167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011168 expr_ty _res = NULL;
11169 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11171 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011172 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011173 return NULL;
11174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011175 int _start_lineno = p->tokens[_mark]->lineno;
11176 UNUSED(_start_lineno); // Only used by EXTRA macro
11177 int _start_col_offset = p->tokens[_mark]->col_offset;
11178 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011179 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011182 return NULL;
11183 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011184 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11185 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011186 Token * _literal;
11187 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011188 expr_ty a;
11189 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011190 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011191 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011192 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011193 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011194 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011195 (_cut_var = 1)
11196 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011197 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011199 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011200 )
11201 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011202 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 +010011203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11204 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011206 return NULL;
11207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011208 int _end_lineno = _token->end_lineno;
11209 UNUSED(_end_lineno); // Only used by EXTRA macro
11210 int _end_col_offset = _token->end_col_offset;
11211 UNUSED(_end_col_offset); // Only used by EXTRA macro
11212 _res = _Py_ListComp ( a , b , EXTRA );
11213 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011214 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011215 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011216 return NULL;
11217 }
11218 goto done;
11219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011220 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011221 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11223 if (_cut_var) {
11224 D(p->level--);
11225 return NULL;
11226 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011227 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011228 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011229 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011230 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011231 return NULL;
11232 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011233 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011234 void *invalid_comprehension_var;
11235 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011236 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011237 )
11238 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011239 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011240 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011241 goto done;
11242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011243 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011244 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011247 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011248 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011249 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011250 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011251}
11252
11253// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11254static expr_ty
11255tuple_rule(Parser *p)
11256{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011257 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011258 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011259 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011260 return NULL;
11261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011262 expr_ty _res = NULL;
11263 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011264 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11265 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011266 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011267 return NULL;
11268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011269 int _start_lineno = p->tokens[_mark]->lineno;
11270 UNUSED(_start_lineno); // Only used by EXTRA macro
11271 int _start_col_offset = p->tokens[_mark]->col_offset;
11272 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011273 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011275 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011276 return NULL;
11277 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011278 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 +010011279 Token * _literal;
11280 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011281 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011282 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011283 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011284 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011285 (a = _tmp_101_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011286 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011287 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011288 )
11289 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011290 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 +010011291 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11292 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011294 return NULL;
11295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011296 int _end_lineno = _token->end_lineno;
11297 UNUSED(_end_lineno); // Only used by EXTRA macro
11298 int _end_col_offset = _token->end_col_offset;
11299 UNUSED(_end_col_offset); // Only used by EXTRA macro
11300 _res = _Py_Tuple ( a , Load , EXTRA );
11301 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011302 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011303 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011304 return NULL;
11305 }
11306 goto done;
11307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011308 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011309 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011312 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011313 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011314 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011315 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011316}
11317
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011318// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011319static expr_ty
11320group_rule(Parser *p)
11321{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011322 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011323 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011325 return NULL;
11326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011327 expr_ty _res = NULL;
11328 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011329 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011331 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011332 return NULL;
11333 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011334 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 +010011335 Token * _literal;
11336 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011337 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011338 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011339 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011340 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011341 (a = _tmp_102_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011342 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011343 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344 )
11345 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011346 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 +010011347 _res = a;
11348 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011349 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011351 return NULL;
11352 }
11353 goto done;
11354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011355 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011356 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011358 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011359 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011360 if (p->error_indicator) {
11361 D(p->level--);
11362 return NULL;
11363 }
11364 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11365 void *invalid_group_var;
11366 if (
11367 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11368 )
11369 {
11370 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11371 _res = invalid_group_var;
11372 goto done;
11373 }
11374 p->mark = _mark;
11375 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011378 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011379 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011380 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011381 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011382}
11383
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011384// genexp: '(' named_expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011385static expr_ty
11386genexp_rule(Parser *p)
11387{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011388 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011389 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011390 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011391 return NULL;
11392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011393 expr_ty _res = NULL;
11394 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11396 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011398 return NULL;
11399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011400 int _start_lineno = p->tokens[_mark]->lineno;
11401 UNUSED(_start_lineno); // Only used by EXTRA macro
11402 int _start_col_offset = p->tokens[_mark]->col_offset;
11403 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011404 { // '(' named_expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011406 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011407 return NULL;
11408 }
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011409 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011410 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011411 Token * _literal;
11412 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011413 expr_ty a;
11414 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011415 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011416 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011417 &&
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011418 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011419 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011420 (_cut_var = 1)
11421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011422 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011423 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011424 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011425 )
11426 {
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011427 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011428 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11429 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011431 return NULL;
11432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011433 int _end_lineno = _token->end_lineno;
11434 UNUSED(_end_lineno); // Only used by EXTRA macro
11435 int _end_col_offset = _token->end_col_offset;
11436 UNUSED(_end_col_offset); // Only used by EXTRA macro
11437 _res = _Py_GeneratorExp ( a , b , EXTRA );
11438 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011441 return NULL;
11442 }
11443 goto done;
11444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011446 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011448 if (_cut_var) {
11449 D(p->level--);
11450 return NULL;
11451 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011452 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011453 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011456 return NULL;
11457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011458 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011459 void *invalid_comprehension_var;
11460 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011461 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011462 )
11463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011464 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011465 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011466 goto done;
11467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011468 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011469 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011472 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011473 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011474 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011475 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011476}
11477
11478// set: '{' expressions_list '}'
11479static expr_ty
11480set_rule(Parser *p)
11481{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011482 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011485 return NULL;
11486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011487 expr_ty _res = NULL;
11488 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011489 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11490 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011491 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011492 return NULL;
11493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011494 int _start_lineno = p->tokens[_mark]->lineno;
11495 UNUSED(_start_lineno); // Only used by EXTRA macro
11496 int _start_col_offset = p->tokens[_mark]->col_offset;
11497 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011498 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011500 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011501 return NULL;
11502 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011503 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011504 Token * _literal;
11505 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011506 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011507 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011508 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011509 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011510 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011511 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011512 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011513 )
11514 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011515 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011516 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11517 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011519 return NULL;
11520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011521 int _end_lineno = _token->end_lineno;
11522 UNUSED(_end_lineno); // Only used by EXTRA macro
11523 int _end_col_offset = _token->end_col_offset;
11524 UNUSED(_end_col_offset); // Only used by EXTRA macro
11525 _res = _Py_Set ( a , EXTRA );
11526 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011527 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011528 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011529 return NULL;
11530 }
11531 goto done;
11532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011533 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011534 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011537 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011538 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011539 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011540 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011541}
11542
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011543// setcomp: '{' expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011544static expr_ty
11545setcomp_rule(Parser *p)
11546{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011547 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011548 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011549 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011550 return NULL;
11551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011552 expr_ty _res = NULL;
11553 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011554 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11555 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011557 return NULL;
11558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011559 int _start_lineno = p->tokens[_mark]->lineno;
11560 UNUSED(_start_lineno); // Only used by EXTRA macro
11561 int _start_col_offset = p->tokens[_mark]->col_offset;
11562 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011563 { // '{' expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011565 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011566 return NULL;
11567 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011568 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11569 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011570 Token * _literal;
11571 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011572 expr_ty a;
11573 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011574 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011575 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011576 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011577 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011578 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011579 (_cut_var = 1)
11580 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011581 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011582 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011583 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011584 )
11585 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011586 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 +010011587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11588 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011590 return NULL;
11591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011592 int _end_lineno = _token->end_lineno;
11593 UNUSED(_end_lineno); // Only used by EXTRA macro
11594 int _end_col_offset = _token->end_col_offset;
11595 UNUSED(_end_col_offset); // Only used by EXTRA macro
11596 _res = _Py_SetComp ( a , b , EXTRA );
11597 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011600 return NULL;
11601 }
11602 goto done;
11603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011604 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011605 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11607 if (_cut_var) {
11608 D(p->level--);
11609 return NULL;
11610 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011611 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011612 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011614 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011615 return NULL;
11616 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011617 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011618 void *invalid_comprehension_var;
11619 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011620 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011621 )
11622 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011623 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011624 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011625 goto done;
11626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011627 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011628 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011631 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011632 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011633 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011634 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011635}
11636
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011637// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011638static expr_ty
11639dict_rule(Parser *p)
11640{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011641 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011644 return NULL;
11645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011646 expr_ty _res = NULL;
11647 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011648 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11649 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011650 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011651 return NULL;
11652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011653 int _start_lineno = p->tokens[_mark]->lineno;
11654 UNUSED(_start_lineno); // Only used by EXTRA macro
11655 int _start_col_offset = p->tokens[_mark]->col_offset;
11656 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011657 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011659 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011660 return NULL;
11661 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011662 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011663 Token * _literal;
11664 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011665 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011666 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011667 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011668 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011669 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011670 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011671 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011672 )
11673 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011674 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 +010011675 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11676 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011677 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011678 return NULL;
11679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011680 int _end_lineno = _token->end_lineno;
11681 UNUSED(_end_lineno); // Only used by EXTRA macro
11682 int _end_col_offset = _token->end_col_offset;
11683 UNUSED(_end_col_offset); // Only used by EXTRA macro
11684 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11685 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011686 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011687 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011688 return NULL;
11689 }
11690 goto done;
11691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011692 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011693 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011696 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011697 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011698 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011699 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011700}
11701
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011702// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011703static expr_ty
11704dictcomp_rule(Parser *p)
11705{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011706 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011709 return NULL;
11710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011711 expr_ty _res = NULL;
11712 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011713 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11714 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011716 return NULL;
11717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011718 int _start_lineno = p->tokens[_mark]->lineno;
11719 UNUSED(_start_lineno); // Only used by EXTRA macro
11720 int _start_col_offset = p->tokens[_mark]->col_offset;
11721 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011722 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011725 return NULL;
11726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011727 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 +010011728 Token * _literal;
11729 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011730 KeyValuePair* a;
11731 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011732 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011733 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011734 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011735 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011736 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011737 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011738 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011739 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011740 )
11741 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011742 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 +010011743 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11744 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011746 return NULL;
11747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011748 int _end_lineno = _token->end_lineno;
11749 UNUSED(_end_lineno); // Only used by EXTRA macro
11750 int _end_col_offset = _token->end_col_offset;
11751 UNUSED(_end_col_offset); // Only used by EXTRA macro
11752 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11753 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011754 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011756 return NULL;
11757 }
11758 goto done;
11759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011760 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011761 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011763 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011764 if (p->call_invalid_rules) { // invalid_dict_comprehension
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011766 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011767 return NULL;
11768 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011769 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 -070011770 void *invalid_dict_comprehension_var;
11771 if (
11772 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11773 )
11774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011775 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 -070011776 _res = invalid_dict_comprehension_var;
11777 goto done;
11778 }
11779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011780 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011783 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011784 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011785 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011786 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011787}
11788
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011789// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011790static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011791double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011792{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011793 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011796 return NULL;
11797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011798 asdl_seq* _res = NULL;
11799 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011800 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011803 return NULL;
11804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011805 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011806 void *_opt_var;
11807 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011808 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011809 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011810 (a = _gather_103_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011811 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011812 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011813 )
11814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011815 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 +010011816 _res = a;
11817 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011818 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011820 return NULL;
11821 }
11822 goto done;
11823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011825 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011828 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011829 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011830 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011831 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011832}
11833
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011834// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011835static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011836double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011837{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011838 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011841 return NULL;
11842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011843 KeyValuePair* _res = NULL;
11844 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011845 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011848 return NULL;
11849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011850 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 +010011851 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011852 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011853 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011854 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011856 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011857 )
11858 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011859 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 +010011860 _res = _PyPegen_key_value_pair ( p , NULL , a );
11861 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011862 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011863 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011864 return NULL;
11865 }
11866 goto done;
11867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011869 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011871 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011872 { // kvpair
11873 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011874 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011875 return NULL;
11876 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011877 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 -070011878 KeyValuePair* kvpair_var;
11879 if (
11880 (kvpair_var = kvpair_rule(p)) // kvpair
11881 )
11882 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011883 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 -070011884 _res = kvpair_var;
11885 goto done;
11886 }
11887 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011888 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011890 }
11891 _res = NULL;
11892 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011893 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011894 return _res;
11895}
11896
11897// kvpair: expression ':' expression
11898static KeyValuePair*
11899kvpair_rule(Parser *p)
11900{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011901 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011903 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011904 return NULL;
11905 }
11906 KeyValuePair* _res = NULL;
11907 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011908 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011911 return NULL;
11912 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011913 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011914 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011915 expr_ty a;
11916 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011917 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011918 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011919 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011920 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011921 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011922 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011923 )
11924 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011925 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011926 _res = _PyPegen_key_value_pair ( p , a , b );
11927 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011928 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011930 return NULL;
11931 }
11932 goto done;
11933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011935 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011938 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011939 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011940 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011941 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011942}
11943
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011944// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011945static asdl_seq*
11946for_if_clauses_rule(Parser *p)
11947{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011948 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011949 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011951 return NULL;
11952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011953 asdl_seq* _res = NULL;
11954 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011955 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011957 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011958 return NULL;
11959 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011960 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 +030011961 asdl_seq * _loop1_105_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011962 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011963 (_loop1_105_var = _loop1_105_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011964 )
11965 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011966 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 +030011967 _res = _loop1_105_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968 goto done;
11969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011970 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011971 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011974 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011975 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011977 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011978}
11979
11980// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011981// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11982// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11983// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011984static comprehension_ty
11985for_if_clause_rule(Parser *p)
11986{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011987 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011989 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011990 return NULL;
11991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011992 comprehension_ty _res = NULL;
11993 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011994 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011995 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011996 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011997 return NULL;
11998 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011999 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12000 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012001 Token * _keyword;
12002 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012003 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010012004 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012005 expr_ty b;
12006 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012007 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012008 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012009 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012010 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012011 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012012 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012013 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012014 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012015 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012016 (_cut_var = 1)
12017 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012018 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012019 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012020 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012021 )
12022 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012023 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 +010012024 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
12025 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012026 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012027 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012028 return NULL;
12029 }
12030 goto done;
12031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012032 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012033 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12035 if (_cut_var) {
12036 D(p->level--);
12037 return NULL;
12038 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012039 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012040 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012042 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012043 return NULL;
12044 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012045 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12046 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012047 Token * _keyword;
12048 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012049 expr_ty a;
12050 expr_ty b;
12051 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012052 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012053 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012054 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012055 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012056 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012057 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012058 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012059 (_cut_var = 1)
12060 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012061 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012062 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012063 (c = _loop0_107_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012064 )
12065 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012066 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 +010012067 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12068 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012069 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012070 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012071 return NULL;
12072 }
12073 goto done;
12074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012075 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012076 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12078 if (_cut_var) {
12079 D(p->level--);
12080 return NULL;
12081 }
12082 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012083 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012084 if (p->error_indicator) {
12085 D(p->level--);
12086 return NULL;
12087 }
12088 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12089 void *invalid_for_target_var;
12090 if (
12091 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12092 )
12093 {
12094 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12095 _res = invalid_for_target_var;
12096 goto done;
12097 }
12098 p->mark = _mark;
12099 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012102 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012103 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012104 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012105 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012106}
12107
12108// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12109static expr_ty
12110yield_expr_rule(Parser *p)
12111{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012112 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012115 return NULL;
12116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012117 expr_ty _res = NULL;
12118 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012119 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12120 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012122 return NULL;
12123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012124 int _start_lineno = p->tokens[_mark]->lineno;
12125 UNUSED(_start_lineno); // Only used by EXTRA macro
12126 int _start_col_offset = p->tokens[_mark]->col_offset;
12127 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012128 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012131 return NULL;
12132 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012133 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 +010012134 Token * _keyword;
12135 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012136 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012137 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012138 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012139 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012140 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012141 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012142 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012143 )
12144 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012145 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 +010012146 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12147 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012148 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012149 return NULL;
12150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012151 int _end_lineno = _token->end_lineno;
12152 UNUSED(_end_lineno); // Only used by EXTRA macro
12153 int _end_col_offset = _token->end_col_offset;
12154 UNUSED(_end_col_offset); // Only used by EXTRA macro
12155 _res = _Py_YieldFrom ( a , EXTRA );
12156 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012157 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012159 return NULL;
12160 }
12161 goto done;
12162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012163 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012164 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012166 }
12167 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012170 return NULL;
12171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012172 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 +010012173 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012174 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012175 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012176 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012177 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012178 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012179 )
12180 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012181 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 +010012182 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12183 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012185 return NULL;
12186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012187 int _end_lineno = _token->end_lineno;
12188 UNUSED(_end_lineno); // Only used by EXTRA macro
12189 int _end_col_offset = _token->end_col_offset;
12190 UNUSED(_end_col_offset); // Only used by EXTRA macro
12191 _res = _Py_Yield ( a , EXTRA );
12192 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012193 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012195 return NULL;
12196 }
12197 goto done;
12198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012199 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012200 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012203 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012204 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012205 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012206 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012207}
12208
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012209// arguments: args ','? &')' | invalid_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012210static expr_ty
12211arguments_rule(Parser *p)
12212{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012213 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012215 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012216 return NULL;
12217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012218 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012219 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12220 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012221 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012223 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012224 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012226 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012227 return NULL;
12228 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012229 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012230 void *_opt_var;
12231 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012232 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012233 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012234 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012235 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012236 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012237 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012238 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012239 )
12240 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012241 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012242 _res = a;
12243 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012244 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012245 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012246 return NULL;
12247 }
12248 goto done;
12249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012250 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012251 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012253 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012254 if (p->call_invalid_rules) { // invalid_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012256 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012257 return NULL;
12258 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012259 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12260 void *invalid_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012261 if (
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012262 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012263 )
12264 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012265 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12266 _res = invalid_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012267 goto done;
12268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012269 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012270 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012273 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012274 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012275 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012278}
12279
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012280// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012281static expr_ty
12282args_rule(Parser *p)
12283{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012284 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012287 return NULL;
12288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012289 expr_ty _res = NULL;
12290 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012294 return NULL;
12295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012296 int _start_lineno = p->tokens[_mark]->lineno;
12297 UNUSED(_start_lineno); // Only used by EXTRA macro
12298 int _start_col_offset = p->tokens[_mark]->col_offset;
12299 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012300 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012303 return NULL;
12304 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012305 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
12306 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012307 void *b;
12308 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012309 (a = _gather_108_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012310 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012311 (b = _tmp_110_rule(p), 1) // [',' kwargs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012312 )
12313 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012314 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 +010012315 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12316 if (_token == NULL) {
12317 D(p->level--);
12318 return NULL;
12319 }
12320 int _end_lineno = _token->end_lineno;
12321 UNUSED(_end_lineno); // Only used by EXTRA macro
12322 int _end_col_offset = _token->end_col_offset;
12323 UNUSED(_end_col_offset); // Only used by EXTRA macro
12324 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012325 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012326 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012327 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012328 return NULL;
12329 }
12330 goto done;
12331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012332 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012333 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012335 }
12336 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012337 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012338 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012339 return NULL;
12340 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012341 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012342 asdl_seq* a;
12343 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012344 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012345 )
12346 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012347 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12349 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012351 return NULL;
12352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012353 int _end_lineno = _token->end_lineno;
12354 UNUSED(_end_lineno); // Only used by EXTRA macro
12355 int _end_col_offset = _token->end_col_offset;
12356 UNUSED(_end_col_offset); // Only used by EXTRA macro
12357 _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 );
12358 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012359 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012361 return NULL;
12362 }
12363 goto done;
12364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012365 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012366 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012369 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012370 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012371 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012372 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012373}
12374
12375// kwargs:
12376// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12377// | ','.kwarg_or_starred+
12378// | ','.kwarg_or_double_starred+
12379static asdl_seq*
12380kwargs_rule(Parser *p)
12381{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012382 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012383 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012384 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012385 return NULL;
12386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012387 asdl_seq* _res = NULL;
12388 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012389 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012390 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012391 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012392 return NULL;
12393 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012394 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 +010012395 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012396 asdl_seq * a;
12397 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012398 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012399 (a = _gather_111_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012400 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012401 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012402 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012403 (b = _gather_113_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012404 )
12405 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012406 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 +010012407 _res = _PyPegen_join_sequences ( p , a , b );
12408 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012409 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012411 return NULL;
12412 }
12413 goto done;
12414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012415 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012416 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012418 }
12419 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012420 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012421 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012422 return NULL;
12423 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012424 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012425 asdl_seq * _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012426 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012427 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012428 )
12429 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012430 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 +010012431 _res = _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012432 goto done;
12433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012434 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012435 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012437 }
12438 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012441 return NULL;
12442 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012443 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 +010012444 asdl_seq * _gather_117_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012445 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012446 (_gather_117_var = _gather_117_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012447 )
12448 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012449 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 +010012450 _res = _gather_117_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012451 goto done;
12452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012454 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012457 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012458 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012459 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012460 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012461}
12462
12463// starred_expression: '*' expression
12464static expr_ty
12465starred_expression_rule(Parser *p)
12466{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012467 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012470 return NULL;
12471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012472 expr_ty _res = NULL;
12473 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012474 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012477 return NULL;
12478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012479 int _start_lineno = p->tokens[_mark]->lineno;
12480 UNUSED(_start_lineno); // Only used by EXTRA macro
12481 int _start_col_offset = p->tokens[_mark]->col_offset;
12482 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012483 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012484 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012485 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012486 return NULL;
12487 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012488 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012489 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012490 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012491 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012492 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012493 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012494 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012495 )
12496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012497 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012498 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12499 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012501 return NULL;
12502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012503 int _end_lineno = _token->end_lineno;
12504 UNUSED(_end_lineno); // Only used by EXTRA macro
12505 int _end_col_offset = _token->end_col_offset;
12506 UNUSED(_end_col_offset); // Only used by EXTRA macro
12507 _res = _Py_Starred ( a , Load , EXTRA );
12508 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012509 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012510 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012511 return NULL;
12512 }
12513 goto done;
12514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012515 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012516 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012519 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012520 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012521 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012522 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012523}
12524
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012525// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012526static KeywordOrStarred*
12527kwarg_or_starred_rule(Parser *p)
12528{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012529 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012531 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012532 return NULL;
12533 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012534 KeywordOrStarred* _res = NULL;
12535 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012536 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12537 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012539 return NULL;
12540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012541 int _start_lineno = p->tokens[_mark]->lineno;
12542 UNUSED(_start_lineno); // Only used by EXTRA macro
12543 int _start_col_offset = p->tokens[_mark]->col_offset;
12544 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012545 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012547 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012548 return NULL;
12549 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012550 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 +010012551 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012552 expr_ty a;
12553 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012554 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012555 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012556 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012557 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012558 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012559 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012560 )
12561 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012562 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 +010012563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12564 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012565 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012566 return NULL;
12567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012568 int _end_lineno = _token->end_lineno;
12569 UNUSED(_end_lineno); // Only used by EXTRA macro
12570 int _end_col_offset = _token->end_col_offset;
12571 UNUSED(_end_col_offset); // Only used by EXTRA macro
12572 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12573 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012574 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012576 return NULL;
12577 }
12578 goto done;
12579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012580 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012581 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012583 }
12584 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012585 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012586 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012587 return NULL;
12588 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012589 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 +010012590 expr_ty a;
12591 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012592 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012593 )
12594 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012595 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 +010012596 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12597 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012600 return NULL;
12601 }
12602 goto done;
12603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012604 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012605 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012607 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012608 if (p->call_invalid_rules) { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012610 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012611 return NULL;
12612 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012613 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 +030012614 void *invalid_kwarg_var;
12615 if (
12616 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12617 )
12618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012619 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 +010012620 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012621 goto done;
12622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012623 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012624 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012627 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012628 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012629 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012630 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012631}
12632
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012633// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012634static KeywordOrStarred*
12635kwarg_or_double_starred_rule(Parser *p)
12636{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012637 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012640 return NULL;
12641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012642 KeywordOrStarred* _res = NULL;
12643 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012644 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12645 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012646 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012647 return NULL;
12648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012649 int _start_lineno = p->tokens[_mark]->lineno;
12650 UNUSED(_start_lineno); // Only used by EXTRA macro
12651 int _start_col_offset = p->tokens[_mark]->col_offset;
12652 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012653 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012655 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012656 return NULL;
12657 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012658 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 +010012659 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012660 expr_ty a;
12661 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012662 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012663 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012664 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012665 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012666 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012667 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012668 )
12669 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012670 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 +010012671 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12672 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012674 return NULL;
12675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012676 int _end_lineno = _token->end_lineno;
12677 UNUSED(_end_lineno); // Only used by EXTRA macro
12678 int _end_col_offset = _token->end_col_offset;
12679 UNUSED(_end_col_offset); // Only used by EXTRA macro
12680 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12681 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012682 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012683 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012684 return NULL;
12685 }
12686 goto done;
12687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012689 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012691 }
12692 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012695 return NULL;
12696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012697 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 +010012698 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012699 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012700 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012701 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012702 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012703 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012704 )
12705 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012706 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 +010012707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12708 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012710 return NULL;
12711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012712 int _end_lineno = _token->end_lineno;
12713 UNUSED(_end_lineno); // Only used by EXTRA macro
12714 int _end_col_offset = _token->end_col_offset;
12715 UNUSED(_end_col_offset); // Only used by EXTRA macro
12716 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12717 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012718 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012720 return NULL;
12721 }
12722 goto done;
12723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012724 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012725 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012727 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012728 if (p->call_invalid_rules) { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012729 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012730 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012731 return NULL;
12732 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012733 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 +030012734 void *invalid_kwarg_var;
12735 if (
12736 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12737 )
12738 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012739 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 +010012740 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012741 goto done;
12742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012743 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012744 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012747 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012748 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012749 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012750 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012751}
12752
12753// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12754static expr_ty
12755star_targets_rule(Parser *p)
12756{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012757 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012760 return NULL;
12761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012762 expr_ty _res = NULL;
12763 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012764 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12765 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012766 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012767 return NULL;
12768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012769 int _start_lineno = p->tokens[_mark]->lineno;
12770 UNUSED(_start_lineno); // Only used by EXTRA macro
12771 int _start_col_offset = p->tokens[_mark]->col_offset;
12772 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012773 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012775 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012776 return NULL;
12777 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012778 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012779 expr_ty a;
12780 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012781 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012782 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012783 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012784 )
12785 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012786 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 +010012787 _res = a;
12788 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012789 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012791 return NULL;
12792 }
12793 goto done;
12794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012795 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012796 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012798 }
12799 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012800 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012801 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012802 return NULL;
12803 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012804 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 +010012805 void *_opt_var;
12806 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012807 expr_ty a;
12808 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012809 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012810 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012811 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012812 (b = _loop0_119_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012813 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012814 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012815 )
12816 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012817 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 +010012818 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12819 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012821 return NULL;
12822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012823 int _end_lineno = _token->end_lineno;
12824 UNUSED(_end_lineno); // Only used by EXTRA macro
12825 int _end_col_offset = _token->end_col_offset;
12826 UNUSED(_end_col_offset); // Only used by EXTRA macro
12827 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12828 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012829 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012831 return NULL;
12832 }
12833 goto done;
12834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012835 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012836 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012839 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012840 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012841 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012842 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012843}
12844
12845// star_targets_seq: ','.star_target+ ','?
12846static asdl_seq*
12847star_targets_seq_rule(Parser *p)
12848{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012849 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012851 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012852 return NULL;
12853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012854 asdl_seq* _res = NULL;
12855 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012856 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012858 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012859 return NULL;
12860 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012861 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 +010012862 void *_opt_var;
12863 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012864 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012865 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012866 (a = _gather_120_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012867 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012868 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012869 )
12870 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012871 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 +010012872 _res = a;
12873 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012874 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012876 return NULL;
12877 }
12878 goto done;
12879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012880 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012881 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012884 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012885 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012886 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012887 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012888}
12889
12890// star_target:
12891// | '*' (!'*' star_target)
12892// | t_primary '.' NAME !t_lookahead
12893// | t_primary '[' slices ']' !t_lookahead
12894// | star_atom
12895static expr_ty
12896star_target_rule(Parser *p)
12897{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012898 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012901 return NULL;
12902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012903 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012904 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12905 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012906 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012908 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012909 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12910 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012912 return NULL;
12913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012914 int _start_lineno = p->tokens[_mark]->lineno;
12915 UNUSED(_start_lineno); // Only used by EXTRA macro
12916 int _start_col_offset = p->tokens[_mark]->col_offset;
12917 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012918 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012920 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012921 return NULL;
12922 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012923 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012924 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012925 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012926 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012927 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012928 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012929 (a = _tmp_122_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012930 )
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, "'*' (!'*' star_target)"));
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_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , 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, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012953 }
12954 { // t_primary '.' NAME !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 '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012960 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012961 expr_ty a;
12962 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012963 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012964 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012965 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012966 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012967 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012968 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012969 &&
12970 _PyPegen_lookahead(0, t_lookahead_rule, p)
12971 )
12972 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012973 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 +010012974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12975 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012976 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012977 return NULL;
12978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012979 int _end_lineno = _token->end_lineno;
12980 UNUSED(_end_lineno); // Only used by EXTRA macro
12981 int _end_col_offset = _token->end_col_offset;
12982 UNUSED(_end_col_offset); // Only used by EXTRA macro
12983 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12984 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012985 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012987 return NULL;
12988 }
12989 goto done;
12990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012991 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012992 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012994 }
12995 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012998 return NULL;
12999 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013000 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 +010013001 Token * _literal;
13002 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013003 expr_ty a;
13004 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013005 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013006 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013007 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013008 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013010 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013011 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013012 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013013 &&
13014 _PyPegen_lookahead(0, t_lookahead_rule, p)
13015 )
13016 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013017 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 +010013018 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13019 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013021 return NULL;
13022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013023 int _end_lineno = _token->end_lineno;
13024 UNUSED(_end_lineno); // Only used by EXTRA macro
13025 int _end_col_offset = _token->end_col_offset;
13026 UNUSED(_end_col_offset); // Only used by EXTRA macro
13027 _res = _Py_Subscript ( a , b , Store , EXTRA );
13028 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013029 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013030 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013031 return NULL;
13032 }
13033 goto done;
13034 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013035 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013036 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013038 }
13039 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013041 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013042 return NULL;
13043 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013044 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013045 expr_ty star_atom_var;
13046 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013047 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013048 )
13049 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013050 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 +010013051 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013052 goto done;
13053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013054 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013055 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013058 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013059 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013060 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013061 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013062 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013063}
13064
13065// star_atom:
13066// | NAME
13067// | '(' star_target ')'
13068// | '(' star_targets_seq? ')'
13069// | '[' star_targets_seq? ']'
13070static expr_ty
13071star_atom_rule(Parser *p)
13072{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013073 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013074 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013076 return NULL;
13077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013078 expr_ty _res = NULL;
13079 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013080 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13081 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013082 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013083 return NULL;
13084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013085 int _start_lineno = p->tokens[_mark]->lineno;
13086 UNUSED(_start_lineno); // Only used by EXTRA macro
13087 int _start_col_offset = p->tokens[_mark]->col_offset;
13088 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013089 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013090 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013091 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013092 return NULL;
13093 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013094 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013095 expr_ty a;
13096 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013097 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013098 )
13099 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013100 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013101 _res = _PyPegen_set_expr_context ( p , a , Store );
13102 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013103 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013105 return NULL;
13106 }
13107 goto done;
13108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013109 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013110 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013112 }
13113 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013116 return NULL;
13117 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013118 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013119 Token * _literal;
13120 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013121 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013122 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013123 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013124 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013125 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013126 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013127 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013128 )
13129 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013130 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 +010013131 _res = _PyPegen_set_expr_context ( p , a , Store );
13132 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013133 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013134 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013135 return NULL;
13136 }
13137 goto done;
13138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013139 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013140 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013142 }
13143 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013146 return NULL;
13147 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013148 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 +010013149 Token * _literal;
13150 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013151 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013152 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013153 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013154 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013155 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013156 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013157 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013158 )
13159 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013160 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 +010013161 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13162 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013163 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013164 return NULL;
13165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013166 int _end_lineno = _token->end_lineno;
13167 UNUSED(_end_lineno); // Only used by EXTRA macro
13168 int _end_col_offset = _token->end_col_offset;
13169 UNUSED(_end_col_offset); // Only used by EXTRA macro
13170 _res = _Py_Tuple ( a , Store , EXTRA );
13171 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013172 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013173 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013174 return NULL;
13175 }
13176 goto done;
13177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013178 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013179 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 }
13182 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013184 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013185 return NULL;
13186 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013187 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 +010013188 Token * _literal;
13189 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013190 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013191 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013192 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013193 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013194 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013195 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013196 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013197 )
13198 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013199 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 +010013200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13201 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013202 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013203 return NULL;
13204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013205 int _end_lineno = _token->end_lineno;
13206 UNUSED(_end_lineno); // Only used by EXTRA macro
13207 int _end_col_offset = _token->end_col_offset;
13208 UNUSED(_end_col_offset); // Only used by EXTRA macro
13209 _res = _Py_List ( a , Store , EXTRA );
13210 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013211 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013213 return NULL;
13214 }
13215 goto done;
13216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013217 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013218 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013221 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013222 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013223 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013224 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013225}
13226
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013227// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013228static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013229single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013230{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013231 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013234 return NULL;
13235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013236 expr_ty _res = NULL;
13237 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013238 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013240 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013241 return NULL;
13242 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013243 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 +030013244 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013245 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013246 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013247 )
13248 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013249 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 +030013250 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013251 goto done;
13252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013253 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013254 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013256 }
13257 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013258 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013259 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013260 return NULL;
13261 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013262 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013263 expr_ty a;
13264 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013265 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013266 )
13267 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013268 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013269 _res = _PyPegen_set_expr_context ( p , a , Store );
13270 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013271 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013272 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013273 return NULL;
13274 }
13275 goto done;
13276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013277 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013278 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013280 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013281 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013283 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013284 return NULL;
13285 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013286 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013287 Token * _literal;
13288 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013289 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013290 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013291 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013292 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013293 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013294 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013295 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013296 )
13297 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013298 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 +010013299 _res = a;
13300 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013301 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013302 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013303 return NULL;
13304 }
13305 goto done;
13306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013307 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013308 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013311 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013312 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013313 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013314 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013315}
13316
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013317// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013318// | t_primary '.' NAME !t_lookahead
13319// | t_primary '[' slices ']' !t_lookahead
13320static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013321single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013322{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013323 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013325 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013326 return NULL;
13327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013328 expr_ty _res = NULL;
13329 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013330 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13331 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013332 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013333 return NULL;
13334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013335 int _start_lineno = p->tokens[_mark]->lineno;
13336 UNUSED(_start_lineno); // Only used by EXTRA macro
13337 int _start_col_offset = p->tokens[_mark]->col_offset;
13338 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013339 { // t_primary '.' NAME !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 '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013345 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013346 expr_ty a;
13347 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013348 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013349 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013350 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013351 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013352 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013353 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013354 &&
13355 _PyPegen_lookahead(0, t_lookahead_rule, p)
13356 )
13357 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013358 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 +010013359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13360 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013361 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013362 return NULL;
13363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013364 int _end_lineno = _token->end_lineno;
13365 UNUSED(_end_lineno); // Only used by EXTRA macro
13366 int _end_col_offset = _token->end_col_offset;
13367 UNUSED(_end_col_offset); // Only used by EXTRA macro
13368 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13369 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013370 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013371 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013372 return NULL;
13373 }
13374 goto done;
13375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013376 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013377 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013379 }
13380 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013381 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013382 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013383 return NULL;
13384 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013385 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 +010013386 Token * _literal;
13387 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013388 expr_ty a;
13389 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013390 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013391 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013392 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013393 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013394 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013395 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013396 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013397 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013398 &&
13399 _PyPegen_lookahead(0, t_lookahead_rule, p)
13400 )
13401 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013402 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 +010013403 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13404 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013405 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013406 return NULL;
13407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013408 int _end_lineno = _token->end_lineno;
13409 UNUSED(_end_lineno); // Only used by EXTRA macro
13410 int _end_col_offset = _token->end_col_offset;
13411 UNUSED(_end_col_offset); // Only used by EXTRA macro
13412 _res = _Py_Subscript ( a , b , Store , EXTRA );
13413 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013414 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013416 return NULL;
13417 }
13418 goto done;
13419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013420 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013421 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013424 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013425 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013426 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013427 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013428}
13429
13430// del_targets: ','.del_target+ ','?
13431static asdl_seq*
13432del_targets_rule(Parser *p)
13433{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013434 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013435 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013436 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013437 return NULL;
13438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013439 asdl_seq* _res = NULL;
13440 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013441 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013443 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013444 return NULL;
13445 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013446 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013447 void *_opt_var;
13448 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013449 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013450 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010013451 (a = _gather_123_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013452 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013453 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013454 )
13455 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013456 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 +010013457 _res = a;
13458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013461 return NULL;
13462 }
13463 goto done;
13464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013466 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013469 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013470 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013472 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013473}
13474
13475// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013476// | t_primary '.' NAME !t_lookahead
13477// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013478// | del_t_atom
13479static expr_ty
13480del_target_rule(Parser *p)
13481{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013482 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013485 return NULL;
13486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013487 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013488 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13489 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013490 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013492 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013493 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13494 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013496 return NULL;
13497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013498 int _start_lineno = p->tokens[_mark]->lineno;
13499 UNUSED(_start_lineno); // Only used by EXTRA macro
13500 int _start_col_offset = p->tokens[_mark]->col_offset;
13501 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013502 { // t_primary '.' NAME !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 '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013508 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013509 expr_ty a;
13510 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013511 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013512 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013513 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013514 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013515 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013516 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013517 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013518 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013519 )
13520 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013521 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 +010013522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13523 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013525 return NULL;
13526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013527 int _end_lineno = _token->end_lineno;
13528 UNUSED(_end_lineno); // Only used by EXTRA macro
13529 int _end_col_offset = _token->end_col_offset;
13530 UNUSED(_end_col_offset); // Only used by EXTRA macro
13531 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13532 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013533 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013534 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013535 return NULL;
13536 }
13537 goto done;
13538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013539 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013540 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013542 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013543 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013545 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013546 return NULL;
13547 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013548 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 +010013549 Token * _literal;
13550 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013551 expr_ty a;
13552 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013553 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013554 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013555 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013556 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013557 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013558 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013559 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013560 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013561 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013562 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013563 )
13564 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013565 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 +010013566 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13567 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013569 return NULL;
13570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013571 int _end_lineno = _token->end_lineno;
13572 UNUSED(_end_lineno); // Only used by EXTRA macro
13573 int _end_col_offset = _token->end_col_offset;
13574 UNUSED(_end_col_offset); // Only used by EXTRA macro
13575 _res = _Py_Subscript ( a , b , Del , EXTRA );
13576 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013577 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013578 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013579 return NULL;
13580 }
13581 goto done;
13582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013583 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013584 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013586 }
13587 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013589 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013590 return NULL;
13591 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013592 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 +010013593 expr_ty del_t_atom_var;
13594 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013595 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013596 )
13597 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013598 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 +010013599 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013600 goto done;
13601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013602 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013603 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013606 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013607 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013608 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013609 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013610 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013611}
13612
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013613// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013614static expr_ty
13615del_t_atom_rule(Parser *p)
13616{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013617 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013619 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013620 return NULL;
13621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013622 expr_ty _res = NULL;
13623 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013624 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13625 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013626 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013627 return NULL;
13628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013629 int _start_lineno = p->tokens[_mark]->lineno;
13630 UNUSED(_start_lineno); // Only used by EXTRA macro
13631 int _start_col_offset = p->tokens[_mark]->col_offset;
13632 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013633 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013634 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013635 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013636 return NULL;
13637 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013638 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013639 expr_ty a;
13640 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013641 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013642 )
13643 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013644 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 +010013645 _res = _PyPegen_set_expr_context ( p , a , Del );
13646 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013647 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013648 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013649 return NULL;
13650 }
13651 goto done;
13652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013653 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013654 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013656 }
13657 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013659 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013660 return NULL;
13661 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013662 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 +010013663 Token * _literal;
13664 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013665 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013666 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013667 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013668 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013669 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013670 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013671 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013672 )
13673 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013674 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 +010013675 _res = _PyPegen_set_expr_context ( p , a , Del );
13676 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013677 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013679 return NULL;
13680 }
13681 goto done;
13682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013684 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013686 }
13687 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013688 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013689 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013690 return NULL;
13691 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013692 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 +010013693 Token * _literal;
13694 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013695 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013696 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013697 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013698 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013699 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013700 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013701 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013702 )
13703 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013704 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 +010013705 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13706 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013708 return NULL;
13709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013710 int _end_lineno = _token->end_lineno;
13711 UNUSED(_end_lineno); // Only used by EXTRA macro
13712 int _end_col_offset = _token->end_col_offset;
13713 UNUSED(_end_col_offset); // Only used by EXTRA macro
13714 _res = _Py_Tuple ( a , Del , EXTRA );
13715 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013716 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013718 return NULL;
13719 }
13720 goto done;
13721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013722 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013723 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 }
13726 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013729 return NULL;
13730 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013731 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 +010013732 Token * _literal;
13733 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013734 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013735 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013736 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013737 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013738 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013739 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013740 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013741 )
13742 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013743 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 +010013744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13745 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013747 return NULL;
13748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013749 int _end_lineno = _token->end_lineno;
13750 UNUSED(_end_lineno); // Only used by EXTRA macro
13751 int _end_col_offset = _token->end_col_offset;
13752 UNUSED(_end_col_offset); // Only used by EXTRA macro
13753 _res = _Py_List ( a , Del , EXTRA );
13754 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013755 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013757 return NULL;
13758 }
13759 goto done;
13760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013761 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013762 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013765 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013766 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013767 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013768 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013769}
13770
13771// targets: ','.target+ ','?
13772static asdl_seq*
13773targets_rule(Parser *p)
13774{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013775 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013776 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013777 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013778 return NULL;
13779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013780 asdl_seq* _res = NULL;
13781 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013782 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013784 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013785 return NULL;
13786 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013787 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013788 void *_opt_var;
13789 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013790 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013791 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010013792 (a = _gather_125_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013793 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013794 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013795 )
13796 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013797 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013798 _res = a;
13799 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013800 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013802 return NULL;
13803 }
13804 goto done;
13805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013806 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013807 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013810 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013811 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013812 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013813 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013814}
13815
13816// target:
13817// | t_primary '.' NAME !t_lookahead
13818// | t_primary '[' slices ']' !t_lookahead
13819// | t_atom
13820static expr_ty
13821target_rule(Parser *p)
13822{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013823 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013826 return NULL;
13827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013828 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013829 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13830 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013831 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013833 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013834 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13835 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013836 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013837 return NULL;
13838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013839 int _start_lineno = p->tokens[_mark]->lineno;
13840 UNUSED(_start_lineno); // Only used by EXTRA macro
13841 int _start_col_offset = p->tokens[_mark]->col_offset;
13842 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013843 { // t_primary '.' NAME !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 '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013849 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013850 expr_ty a;
13851 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013852 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013853 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013854 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013855 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013856 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013857 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013858 &&
13859 _PyPegen_lookahead(0, t_lookahead_rule, p)
13860 )
13861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013862 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 +010013863 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13864 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013865 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013866 return NULL;
13867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013868 int _end_lineno = _token->end_lineno;
13869 UNUSED(_end_lineno); // Only used by EXTRA macro
13870 int _end_col_offset = _token->end_col_offset;
13871 UNUSED(_end_col_offset); // Only used by EXTRA macro
13872 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13873 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013874 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013876 return NULL;
13877 }
13878 goto done;
13879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013880 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013881 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 }
13884 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013886 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013887 return NULL;
13888 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013889 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 +010013890 Token * _literal;
13891 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013892 expr_ty a;
13893 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013894 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013895 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013896 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013897 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013898 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013899 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013900 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013901 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013902 &&
13903 _PyPegen_lookahead(0, t_lookahead_rule, p)
13904 )
13905 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013906 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 +010013907 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13908 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013909 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013910 return NULL;
13911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013912 int _end_lineno = _token->end_lineno;
13913 UNUSED(_end_lineno); // Only used by EXTRA macro
13914 int _end_col_offset = _token->end_col_offset;
13915 UNUSED(_end_col_offset); // Only used by EXTRA macro
13916 _res = _Py_Subscript ( a , b , Store , EXTRA );
13917 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013918 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013919 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013920 return NULL;
13921 }
13922 goto done;
13923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013924 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013925 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013927 }
13928 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013929 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013930 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013931 return NULL;
13932 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013933 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013934 expr_ty t_atom_var;
13935 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013936 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013937 )
13938 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013939 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013940 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013941 goto done;
13942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013943 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013944 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013947 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013948 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013949 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013950 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013951 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013952}
13953
13954// Left-recursive
13955// t_primary:
13956// | t_primary '.' NAME &t_lookahead
13957// | t_primary '[' slices ']' &t_lookahead
13958// | t_primary genexp &t_lookahead
13959// | t_primary '(' arguments? ')' &t_lookahead
13960// | atom &t_lookahead
13961static expr_ty t_primary_raw(Parser *);
13962static expr_ty
13963t_primary_rule(Parser *p)
13964{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013965 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013966 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013967 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13968 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013969 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013971 int _mark = p->mark;
13972 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013974 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013975 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013977 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013979 p->mark = _mark;
13980 void *_raw = t_primary_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +020013981 if (p->error_indicator)
13982 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013983 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013984 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013985 _resmark = p->mark;
13986 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013988 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013989 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013990 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013991}
13992static expr_ty
13993t_primary_raw(Parser *p)
13994{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013995 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013997 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013998 return NULL;
13999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014000 expr_ty _res = NULL;
14001 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014002 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14003 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014005 return NULL;
14006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014007 int _start_lineno = p->tokens[_mark]->lineno;
14008 UNUSED(_start_lineno); // Only used by EXTRA macro
14009 int _start_col_offset = p->tokens[_mark]->col_offset;
14010 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014011 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014012 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014013 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014014 return NULL;
14015 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014016 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 +010014017 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014018 expr_ty a;
14019 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014020 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014021 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014022 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014023 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014024 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014025 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014026 &&
14027 _PyPegen_lookahead(1, t_lookahead_rule, p)
14028 )
14029 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014030 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 +010014031 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14032 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014034 return NULL;
14035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014036 int _end_lineno = _token->end_lineno;
14037 UNUSED(_end_lineno); // Only used by EXTRA macro
14038 int _end_col_offset = _token->end_col_offset;
14039 UNUSED(_end_col_offset); // Only used by EXTRA macro
14040 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14041 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014042 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014043 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014044 return NULL;
14045 }
14046 goto done;
14047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014048 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014049 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014051 }
14052 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014054 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014055 return NULL;
14056 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014057 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 +010014058 Token * _literal;
14059 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014060 expr_ty a;
14061 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014062 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014063 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014064 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014065 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014066 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014067 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014068 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014069 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014070 &&
14071 _PyPegen_lookahead(1, t_lookahead_rule, p)
14072 )
14073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014074 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 +010014075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14076 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014077 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014078 return NULL;
14079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014080 int _end_lineno = _token->end_lineno;
14081 UNUSED(_end_lineno); // Only used by EXTRA macro
14082 int _end_col_offset = _token->end_col_offset;
14083 UNUSED(_end_col_offset); // Only used by EXTRA macro
14084 _res = _Py_Subscript ( a , b , Load , EXTRA );
14085 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014086 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014088 return NULL;
14089 }
14090 goto done;
14091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014093 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014095 }
14096 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014099 return NULL;
14100 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014101 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 +010014102 expr_ty a;
14103 expr_ty b;
14104 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014105 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014106 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014107 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014108 &&
14109 _PyPegen_lookahead(1, t_lookahead_rule, p)
14110 )
14111 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014112 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 +010014113 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14114 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014116 return NULL;
14117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014118 int _end_lineno = _token->end_lineno;
14119 UNUSED(_end_lineno); // Only used by EXTRA macro
14120 int _end_col_offset = _token->end_col_offset;
14121 UNUSED(_end_col_offset); // Only used by EXTRA macro
14122 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14123 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014126 return NULL;
14127 }
14128 goto done;
14129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014131 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014133 }
14134 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014137 return NULL;
14138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014139 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 +010014140 Token * _literal;
14141 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014142 expr_ty a;
14143 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014144 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014145 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014146 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014147 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014148 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014149 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014150 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014151 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014152 &&
14153 _PyPegen_lookahead(1, t_lookahead_rule, p)
14154 )
14155 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014156 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 +010014157 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14158 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014159 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014160 return NULL;
14161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014162 int _end_lineno = _token->end_lineno;
14163 UNUSED(_end_lineno); // Only used by EXTRA macro
14164 int _end_col_offset = _token->end_col_offset;
14165 UNUSED(_end_col_offset); // Only used by EXTRA macro
14166 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14167 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014168 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014169 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014170 return NULL;
14171 }
14172 goto done;
14173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014174 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014175 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014177 }
14178 { // atom &t_lookahead
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_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014184 expr_ty a;
14185 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014186 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014187 &&
14188 _PyPegen_lookahead(1, t_lookahead_rule, p)
14189 )
14190 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014191 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 +010014192 _res = a;
14193 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014194 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014195 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014196 return NULL;
14197 }
14198 goto done;
14199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014200 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014201 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014204 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014205 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014206 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014207 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014208}
14209
14210// t_lookahead: '(' | '[' | '.'
14211static void *
14212t_lookahead_rule(Parser *p)
14213{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014214 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014217 return NULL;
14218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014219 void * _res = NULL;
14220 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014221 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014222 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014223 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014224 return NULL;
14225 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014226 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014227 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014228 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014229 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014230 )
14231 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014232 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014233 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014234 goto done;
14235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014237 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014239 }
14240 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014243 return NULL;
14244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014245 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014246 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014247 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014248 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014249 )
14250 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014251 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014252 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014253 goto done;
14254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014256 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014258 }
14259 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014260 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014261 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014262 return NULL;
14263 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014264 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014265 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014266 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014267 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014268 )
14269 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014270 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014271 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014272 goto done;
14273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014274 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014275 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014278 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014279 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014280 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014281 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014282}
14283
14284// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14285static expr_ty
14286t_atom_rule(Parser *p)
14287{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014288 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014291 return NULL;
14292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014293 expr_ty _res = NULL;
14294 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014295 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14296 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014298 return NULL;
14299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014300 int _start_lineno = p->tokens[_mark]->lineno;
14301 UNUSED(_start_lineno); // Only used by EXTRA macro
14302 int _start_col_offset = p->tokens[_mark]->col_offset;
14303 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014304 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014306 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014307 return NULL;
14308 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014309 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014310 expr_ty a;
14311 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014312 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014313 )
14314 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014315 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014316 _res = _PyPegen_set_expr_context ( p , a , Store );
14317 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014318 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014320 return NULL;
14321 }
14322 goto done;
14323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014324 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014325 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014327 }
14328 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014329 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014330 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014331 return NULL;
14332 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014333 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014334 Token * _literal;
14335 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014336 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014337 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014338 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014339 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014340 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014341 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014342 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014343 )
14344 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014345 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014346 _res = _PyPegen_set_expr_context ( p , a , Store );
14347 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014348 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014349 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014350 return NULL;
14351 }
14352 goto done;
14353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014354 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014355 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014357 }
14358 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014359 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014360 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014361 return NULL;
14362 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014363 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014364 Token * _literal;
14365 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014366 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014367 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014368 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014369 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014370 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014371 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014372 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014373 )
14374 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014375 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014376 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14377 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014379 return NULL;
14380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014381 int _end_lineno = _token->end_lineno;
14382 UNUSED(_end_lineno); // Only used by EXTRA macro
14383 int _end_col_offset = _token->end_col_offset;
14384 UNUSED(_end_col_offset); // Only used by EXTRA macro
14385 _res = _Py_Tuple ( b , Store , EXTRA );
14386 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014387 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014389 return NULL;
14390 }
14391 goto done;
14392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014393 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014394 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014396 }
14397 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014399 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014400 return NULL;
14401 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014402 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014403 Token * _literal;
14404 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014405 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014406 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014407 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014408 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014409 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014410 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014411 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014412 )
14413 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014414 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014415 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14416 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014417 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014418 return NULL;
14419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014420 int _end_lineno = _token->end_lineno;
14421 UNUSED(_end_lineno); // Only used by EXTRA macro
14422 int _end_col_offset = _token->end_col_offset;
14423 UNUSED(_end_col_offset); // Only used by EXTRA macro
14424 _res = _Py_List ( b , Store , EXTRA );
14425 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014426 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014428 return NULL;
14429 }
14430 goto done;
14431 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014432 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014433 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014436 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014437 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014438 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014439 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014440}
14441
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014442// invalid_arguments:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014443// | args ',' '*'
14444// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014445// | args for_if_clauses
14446// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014447// | args ',' args
14448static void *
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014449invalid_arguments_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014450{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014451 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014454 return NULL;
14455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014456 void * _res = NULL;
14457 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014458 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014461 return NULL;
14462 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014463 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014464 Token * _literal;
14465 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014466 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014467 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014468 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014469 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014470 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014471 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014472 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014473 )
14474 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014475 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014476 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14477 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014478 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014480 return NULL;
14481 }
14482 goto done;
14483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014484 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014485 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014487 }
14488 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014491 return NULL;
14492 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014493 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014494 Token * _literal;
14495 void *_opt_var;
14496 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014497 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014498 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014499 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014500 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014501 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014502 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014503 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014504 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014505 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014506 (_opt_var = _tmp_127_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014507 )
14508 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014509 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014510 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014511 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014512 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014513 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014514 return NULL;
14515 }
14516 goto done;
14517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014518 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014519 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014521 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014522 { // args for_if_clauses
14523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014524 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014525 return NULL;
14526 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014527 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014528 expr_ty a;
14529 asdl_seq* for_if_clauses_var;
14530 if (
14531 (a = args_rule(p)) // args
14532 &&
14533 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14534 )
14535 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014536 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014537 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14538 if (_res == NULL && PyErr_Occurred()) {
14539 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014540 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014541 return NULL;
14542 }
14543 goto done;
14544 }
14545 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014546 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014548 }
14549 { // args ',' expression for_if_clauses
14550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014551 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014552 return NULL;
14553 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014554 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014555 Token * _literal;
14556 expr_ty a;
14557 expr_ty args_var;
14558 asdl_seq* for_if_clauses_var;
14559 if (
14560 (args_var = args_rule(p)) // args
14561 &&
14562 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14563 &&
14564 (a = expression_rule(p)) // expression
14565 &&
14566 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14567 )
14568 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014569 D(fprintf(stderr, "%*c+ invalid_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 -070014570 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14571 if (_res == NULL && PyErr_Occurred()) {
14572 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014573 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014574 return NULL;
14575 }
14576 goto done;
14577 }
14578 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014579 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014581 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014582 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014584 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014585 return NULL;
14586 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014587 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014588 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014589 expr_ty a;
14590 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014591 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014592 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014593 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014594 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014595 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014596 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014597 )
14598 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014599 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014600 _res = _PyPegen_arguments_parsing_error ( p , a );
14601 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014602 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014604 return NULL;
14605 }
14606 goto done;
14607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014608 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014609 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014612 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014613 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014614 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014615 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014616}
14617
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014618// invalid_kwarg: expression '='
14619static void *
14620invalid_kwarg_rule(Parser *p)
14621{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014622 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014624 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014625 return NULL;
14626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014627 void * _res = NULL;
14628 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014629 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014631 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014632 return NULL;
14633 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014634 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014635 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014636 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014637 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014638 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014639 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014640 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014641 )
14642 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014643 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014644 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014645 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014646 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014647 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014648 return NULL;
14649 }
14650 goto done;
14651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014652 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014653 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014656 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014657 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014658 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014659 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014660}
14661
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014662// invalid_named_expression: expression ':=' expression
14663static void *
14664invalid_named_expression_rule(Parser *p)
14665{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014666 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 return NULL;
14670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014671 void * _res = NULL;
14672 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014673 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014676 return NULL;
14677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014678 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 +010014679 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014680 expr_ty a;
14681 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014682 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014683 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014684 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014685 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014686 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014687 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014688 )
14689 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014690 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 +030014691 _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 +010014692 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014693 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014694 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014695 return NULL;
14696 }
14697 goto done;
14698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014699 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014700 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014703 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014704 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014705 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014706 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014707}
14708
14709// invalid_assignment:
Pablo Galindo102ca522020-06-28 00:40:41 +010014710// | invalid_ann_assign_target ':' expression
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014711// | star_named_expression ',' star_named_expressions* ':' expression
14712// | expression ':' expression
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014713// | ((star_targets '='))* star_expressions '='
14714// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014715// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014716static void *
14717invalid_assignment_rule(Parser *p)
14718{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014719 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014721 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014722 return NULL;
14723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014724 void * _res = NULL;
14725 int _mark = p->mark;
Pablo Galindo102ca522020-06-28 00:40:41 +010014726 { // invalid_ann_assign_target ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014729 return NULL;
14730 }
Pablo Galindo102ca522020-06-28 00:40:41 +010014731 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 +010014732 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014733 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014734 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014735 if (
Pablo Galindo102ca522020-06-28 00:40:41 +010014736 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014737 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014738 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014739 &&
14740 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014741 )
14742 {
Pablo Galindo102ca522020-06-28 00:40:41 +010014743 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14744 _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 +010014745 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014746 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014748 return NULL;
14749 }
14750 goto done;
14751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014752 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014753 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo102ca522020-06-28 00:40:41 +010014754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014755 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014756 { // star_named_expression ',' star_named_expressions* ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014758 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014759 return NULL;
14760 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014761 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 +030014762 Token * _literal;
14763 Token * _literal_1;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014764 asdl_seq * _loop0_128_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014765 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014766 expr_ty expression_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014767 if (
14768 (a = star_named_expression_rule(p)) // star_named_expression
14769 &&
14770 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14771 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014772 (_loop0_128_var = _loop0_128_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014773 &&
14774 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014775 &&
14776 (expression_var = expression_rule(p)) // expression
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014777 )
14778 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014779 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 +030014780 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014781 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014782 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014784 return NULL;
14785 }
14786 goto done;
14787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014788 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014789 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014791 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014792 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014794 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014795 return NULL;
14796 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014797 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014798 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014799 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014800 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014801 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014802 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014803 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014804 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014805 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014806 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014807 )
14808 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014809 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 +030014810 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014811 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014812 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014814 return NULL;
14815 }
14816 goto done;
14817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014818 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014819 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014821 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014822 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014824 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014825 return NULL;
14826 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014827 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 +010014828 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014829 asdl_seq * _loop0_129_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014830 expr_ty a;
14831 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014832 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014833 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014834 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014835 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014836 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014837 )
14838 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014839 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 +030014840 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014841 if (_res == NULL && PyErr_Occurred()) {
14842 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014843 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014844 return NULL;
14845 }
14846 goto done;
14847 }
14848 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014849 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14851 }
14852 { // ((star_targets '='))* yield_expr '='
14853 if (p->error_indicator) {
14854 D(p->level--);
14855 return NULL;
14856 }
14857 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14858 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014859 asdl_seq * _loop0_130_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014860 expr_ty a;
14861 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014862 (_loop0_130_var = _loop0_130_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014863 &&
14864 (a = yield_expr_rule(p)) // yield_expr
14865 &&
14866 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14867 )
14868 {
14869 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14870 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14871 if (_res == NULL && PyErr_Occurred()) {
14872 p->error_indicator = 1;
14873 D(p->level--);
14874 return NULL;
14875 }
14876 goto done;
14877 }
14878 p->mark = _mark;
14879 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014881 }
14882 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014884 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014885 return NULL;
14886 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014887 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 +010014888 void *_tmp_131_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014889 expr_ty a;
14890 AugOperator* augassign_var;
14891 if (
14892 (a = star_expressions_rule(p)) // star_expressions
14893 &&
14894 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014895 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014896 (_tmp_131_var = _tmp_131_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014897 )
14898 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014899 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 +010014900 _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 +010014901 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014902 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014904 return NULL;
14905 }
14906 goto done;
14907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014908 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014909 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014912 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014913 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014914 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014915 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014916}
14917
Pablo Galindo102ca522020-06-28 00:40:41 +010014918// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14919static expr_ty
14920invalid_ann_assign_target_rule(Parser *p)
14921{
14922 D(p->level++);
14923 if (p->error_indicator) {
14924 D(p->level--);
14925 return NULL;
14926 }
14927 expr_ty _res = NULL;
14928 int _mark = p->mark;
14929 { // list
14930 if (p->error_indicator) {
14931 D(p->level--);
14932 return NULL;
14933 }
14934 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14935 expr_ty list_var;
14936 if (
14937 (list_var = list_rule(p)) // list
14938 )
14939 {
14940 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14941 _res = list_var;
14942 goto done;
14943 }
14944 p->mark = _mark;
14945 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14947 }
14948 { // tuple
14949 if (p->error_indicator) {
14950 D(p->level--);
14951 return NULL;
14952 }
14953 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14954 expr_ty tuple_var;
14955 if (
14956 (tuple_var = tuple_rule(p)) // tuple
14957 )
14958 {
14959 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
14960 _res = tuple_var;
14961 goto done;
14962 }
14963 p->mark = _mark;
14964 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
14966 }
14967 { // '(' invalid_ann_assign_target ')'
14968 if (p->error_indicator) {
14969 D(p->level--);
14970 return NULL;
14971 }
14972 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14973 Token * _literal;
14974 Token * _literal_1;
14975 expr_ty a;
14976 if (
14977 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14978 &&
14979 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
14980 &&
14981 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14982 )
14983 {
14984 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14985 _res = a;
14986 if (_res == NULL && PyErr_Occurred()) {
14987 p->error_indicator = 1;
14988 D(p->level--);
14989 return NULL;
14990 }
14991 goto done;
14992 }
14993 p->mark = _mark;
14994 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14996 }
14997 _res = NULL;
14998 done:
14999 D(p->level--);
15000 return _res;
15001}
15002
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015003// invalid_del_stmt: 'del' star_expressions
15004static void *
15005invalid_del_stmt_rule(Parser *p)
15006{
15007 D(p->level++);
15008 if (p->error_indicator) {
15009 D(p->level--);
15010 return NULL;
15011 }
15012 void * _res = NULL;
15013 int _mark = p->mark;
15014 { // 'del' star_expressions
15015 if (p->error_indicator) {
15016 D(p->level--);
15017 return NULL;
15018 }
15019 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15020 Token * _keyword;
15021 expr_ty a;
15022 if (
15023 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15024 &&
15025 (a = star_expressions_rule(p)) // star_expressions
15026 )
15027 {
15028 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 +030015029 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015030 if (_res == NULL && PyErr_Occurred()) {
15031 p->error_indicator = 1;
15032 D(p->level--);
15033 return NULL;
15034 }
15035 goto done;
15036 }
15037 p->mark = _mark;
15038 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15040 }
15041 _res = NULL;
15042 done:
15043 D(p->level--);
15044 return _res;
15045}
15046
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015047// invalid_block: NEWLINE !INDENT
15048static void *
15049invalid_block_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;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015058 { // NEWLINE !INDENT
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_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015064 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015065 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015066 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015068 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015069 )
15070 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015071 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 +010015072 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15073 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015074 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015076 return NULL;
15077 }
15078 goto done;
15079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015080 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015081 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015084 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015085 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015086 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015087 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015088}
15089
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020015090// Left-recursive
15091// invalid_primary: primary '{'
15092static void *
15093invalid_primary_rule(Parser *p)
15094{
15095 D(p->level++);
15096 if (p->error_indicator) {
15097 D(p->level--);
15098 return NULL;
15099 }
15100 void * _res = NULL;
15101 int _mark = p->mark;
15102 { // primary '{'
15103 if (p->error_indicator) {
15104 D(p->level--);
15105 return NULL;
15106 }
15107 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15108 Token * a;
15109 expr_ty primary_var;
15110 if (
15111 (primary_var = primary_rule(p)) // primary
15112 &&
15113 (a = _PyPegen_expect_token(p, 25)) // token='{'
15114 )
15115 {
15116 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15117 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15118 if (_res == NULL && PyErr_Occurred()) {
15119 p->error_indicator = 1;
15120 D(p->level--);
15121 return NULL;
15122 }
15123 goto done;
15124 }
15125 p->mark = _mark;
15126 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15128 }
15129 _res = NULL;
15130 done:
15131 D(p->level--);
15132 return _res;
15133}
15134
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015135// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015136static void *
15137invalid_comprehension_rule(Parser *p)
15138{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015139 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015140 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015141 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015142 return NULL;
15143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015144 void * _res = NULL;
15145 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015146 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015147 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015148 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015149 return NULL;
15150 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015151 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 +010015152 void *_tmp_132_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015153 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015154 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015155 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015156 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015157 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015158 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015159 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015160 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015161 )
15162 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015163 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 +030015164 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015165 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015166 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015167 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015168 return NULL;
15169 }
15170 goto done;
15171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015172 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015173 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015176 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015177 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015178 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015179 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015180}
15181
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015182// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15183static void *
15184invalid_dict_comprehension_rule(Parser *p)
15185{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015186 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015188 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015189 return NULL;
15190 }
15191 void * _res = NULL;
15192 int _mark = p->mark;
15193 { // '{' '**' bitwise_or for_if_clauses '}'
15194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015195 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015196 return NULL;
15197 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015198 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 -070015199 Token * _literal;
15200 Token * _literal_1;
15201 Token * a;
15202 expr_ty bitwise_or_var;
15203 asdl_seq* for_if_clauses_var;
15204 if (
15205 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15206 &&
15207 (a = _PyPegen_expect_token(p, 35)) // token='**'
15208 &&
15209 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15210 &&
15211 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15212 &&
15213 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15214 )
15215 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015216 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 -070015217 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15218 if (_res == NULL && PyErr_Occurred()) {
15219 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015220 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015221 return NULL;
15222 }
15223 goto done;
15224 }
15225 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015226 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015228 }
15229 _res = NULL;
15230 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015231 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015232 return _res;
15233}
15234
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015235// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015236// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015237static void *
15238invalid_parameters_rule(Parser *p)
15239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015240 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015243 return NULL;
15244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015245 void * _res = NULL;
15246 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015247 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015250 return NULL;
15251 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015252 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 +010015253 asdl_seq * _loop0_133_var;
15254 void *_tmp_134_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015255 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015256 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015257 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015258 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015259 (_tmp_134_var = _tmp_134_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015260 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015261 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015262 )
15263 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015264 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 +010015265 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15266 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015267 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015268 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015269 return NULL;
15270 }
15271 goto done;
15272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015273 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015274 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15275 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 +010015276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015277 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015278 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015279 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015280 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015281}
15282
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015283// invalid_lambda_parameters:
15284// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15285static void *
15286invalid_lambda_parameters_rule(Parser *p)
15287{
15288 D(p->level++);
15289 if (p->error_indicator) {
15290 D(p->level--);
15291 return NULL;
15292 }
15293 void * _res = NULL;
15294 int _mark = p->mark;
15295 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15296 if (p->error_indicator) {
15297 D(p->level--);
15298 return NULL;
15299 }
15300 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 +010015301 asdl_seq * _loop0_135_var;
15302 void *_tmp_136_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015303 arg_ty lambda_param_no_default_var;
15304 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015305 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015306 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015307 (_tmp_136_var = _tmp_136_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015308 &&
15309 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15310 )
15311 {
15312 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"));
15313 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15314 if (_res == NULL && PyErr_Occurred()) {
15315 p->error_indicator = 1;
15316 D(p->level--);
15317 return NULL;
15318 }
15319 goto done;
15320 }
15321 p->mark = _mark;
15322 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15324 }
15325 _res = NULL;
15326 done:
15327 D(p->level--);
15328 return _res;
15329}
15330
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015331// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015332static void *
15333invalid_star_etc_rule(Parser *p)
15334{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015335 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015337 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015338 return NULL;
15339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015340 void * _res = NULL;
15341 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015342 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015343 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015344 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015345 return NULL;
15346 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015347 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015348 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015349 void *_tmp_137_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015350 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015351 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015352 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015353 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015354 )
15355 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015356 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015357 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15358 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015359 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015360 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015361 return NULL;
15362 }
15363 goto done;
15364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015365 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015366 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015368 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015369 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015370 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015371 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015372 return NULL;
15373 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015374 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 +030015375 Token * _literal;
15376 Token * _literal_1;
15377 Token * type_comment_var;
15378 if (
15379 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15380 &&
15381 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15382 &&
15383 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15384 )
15385 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015386 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 +030015387 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15388 if (_res == NULL && PyErr_Occurred()) {
15389 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015390 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015391 return NULL;
15392 }
15393 goto done;
15394 }
15395 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015396 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015399 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015400 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015401 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015402 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015403}
15404
15405// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15406static void *
15407invalid_lambda_star_etc_rule(Parser *p)
15408{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015409 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015411 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015412 return NULL;
15413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015414 void * _res = NULL;
15415 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015416 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015417 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015418 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015419 return NULL;
15420 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015421 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015422 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015423 void *_tmp_138_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015424 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015425 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015426 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015427 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015428 )
15429 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015430 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 +010015431 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15432 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015433 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015434 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015435 return NULL;
15436 }
15437 goto done;
15438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015439 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015440 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015443 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015444 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015445 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015446 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015447}
15448
Guido van Rossumc001c092020-04-30 12:12:19 -070015449// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15450static void *
15451invalid_double_type_comments_rule(Parser *p)
15452{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015453 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015455 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015456 return NULL;
15457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015458 void * _res = NULL;
15459 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015460 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015461 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015462 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015463 return NULL;
15464 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015465 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 +010015466 Token * indent_var;
15467 Token * newline_var;
15468 Token * newline_var_1;
15469 Token * type_comment_var;
15470 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015471 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015472 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015473 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015474 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015475 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015476 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015477 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015478 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015479 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015480 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015481 )
15482 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015483 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 +010015484 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15485 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015486 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015487 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015488 return NULL;
15489 }
15490 goto done;
15491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015492 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015493 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015496 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015497 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015498 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015499 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015500}
15501
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015502// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015503static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015504invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015505{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015506 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015508 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015509 return NULL;
15510 }
15511 void * _res = NULL;
15512 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015513 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015514 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015515 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015516 return NULL;
15517 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015518 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15519 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015520 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015521 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015522 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015523 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015524 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015525 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15526 &&
15527 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015528 )
15529 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015530 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 +030015531 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Shantanu27c0d9b2020-05-11 14:53:58 -070015532 if (_res == NULL && PyErr_Occurred()) {
15533 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015534 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015535 return NULL;
15536 }
15537 goto done;
15538 }
15539 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015540 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15542 }
15543 _res = NULL;
15544 done:
15545 D(p->level--);
15546 return _res;
15547}
15548
15549// invalid_for_target: ASYNC? 'for' star_expressions
15550static void *
15551invalid_for_target_rule(Parser *p)
15552{
15553 D(p->level++);
15554 if (p->error_indicator) {
15555 D(p->level--);
15556 return NULL;
15557 }
15558 void * _res = NULL;
15559 int _mark = p->mark;
15560 { // ASYNC? 'for' star_expressions
15561 if (p->error_indicator) {
15562 D(p->level--);
15563 return NULL;
15564 }
15565 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15566 Token * _keyword;
15567 void *_opt_var;
15568 UNUSED(_opt_var); // Silence compiler warnings
15569 expr_ty a;
15570 if (
15571 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15572 &&
15573 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15574 &&
15575 (a = star_expressions_rule(p)) // star_expressions
15576 )
15577 {
15578 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 +030015579 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015580 if (_res == NULL && PyErr_Occurred()) {
15581 p->error_indicator = 1;
15582 D(p->level--);
15583 return NULL;
15584 }
15585 goto done;
15586 }
15587 p->mark = _mark;
15588 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15590 }
15591 _res = NULL;
15592 done:
15593 D(p->level--);
15594 return _res;
15595}
15596
15597// invalid_group: '(' starred_expression ')'
15598static void *
15599invalid_group_rule(Parser *p)
15600{
15601 D(p->level++);
15602 if (p->error_indicator) {
15603 D(p->level--);
15604 return NULL;
15605 }
15606 void * _res = NULL;
15607 int _mark = p->mark;
15608 { // '(' starred_expression ')'
15609 if (p->error_indicator) {
15610 D(p->level--);
15611 return NULL;
15612 }
15613 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15614 Token * _literal;
15615 Token * _literal_1;
15616 expr_ty a;
15617 if (
15618 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15619 &&
15620 (a = starred_expression_rule(p)) // starred_expression
15621 &&
15622 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15623 )
15624 {
15625 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15626 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15627 if (_res == NULL && PyErr_Occurred()) {
15628 p->error_indicator = 1;
15629 D(p->level--);
15630 return NULL;
15631 }
15632 goto done;
15633 }
15634 p->mark = _mark;
15635 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015637 }
15638 _res = NULL;
15639 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015640 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015641 return _res;
15642}
15643
Pablo Galindo275d7e12020-05-21 22:04:54 +010015644// invalid_import_from_targets: import_from_as_names ','
15645static void *
15646invalid_import_from_targets_rule(Parser *p)
15647{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015648 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015650 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015651 return NULL;
15652 }
15653 void * _res = NULL;
15654 int _mark = p->mark;
15655 { // import_from_as_names ','
15656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015657 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015658 return NULL;
15659 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015660 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 +010015661 Token * _literal;
15662 asdl_seq* import_from_as_names_var;
15663 if (
15664 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15665 &&
15666 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15667 )
15668 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015669 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 +010015670 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15671 if (_res == NULL && PyErr_Occurred()) {
15672 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015673 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015674 return NULL;
15675 }
15676 goto done;
15677 }
15678 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015679 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015681 }
15682 _res = NULL;
15683 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015684 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015685 return _res;
15686}
15687
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015688// _loop0_1: NEWLINE
15689static asdl_seq *
15690_loop0_1_rule(Parser *p)
15691{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015692 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015694 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015695 return NULL;
15696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015697 void *_res = NULL;
15698 int _mark = p->mark;
15699 int _start_mark = p->mark;
15700 void **_children = PyMem_Malloc(sizeof(void *));
15701 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015702 p->error_indicator = 1;
15703 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015705 return NULL;
15706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015707 ssize_t _children_capacity = 1;
15708 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015709 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015711 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015712 return NULL;
15713 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015714 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015715 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015716 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015717 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015718 )
15719 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015720 _res = newline_var;
15721 if (_n == _children_capacity) {
15722 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015723 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15724 if (!_new_children) {
15725 p->error_indicator = 1;
15726 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015727 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015728 return NULL;
15729 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015730 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015732 _children[_n++] = _res;
15733 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015735 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015736 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015739 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15740 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015741 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015742 p->error_indicator = 1;
15743 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015745 return NULL;
15746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015747 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15748 PyMem_Free(_children);
15749 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015750 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015751 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015752}
15753
Guido van Rossumc001c092020-04-30 12:12:19 -070015754// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015755static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015756_loop0_2_rule(Parser *p)
15757{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015758 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015759 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015760 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015761 return NULL;
15762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015763 void *_res = NULL;
15764 int _mark = p->mark;
15765 int _start_mark = p->mark;
15766 void **_children = PyMem_Malloc(sizeof(void *));
15767 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015768 p->error_indicator = 1;
15769 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015770 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015771 return NULL;
15772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015773 ssize_t _children_capacity = 1;
15774 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015775 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015776 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015777 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015778 return NULL;
15779 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015780 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015781 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015782 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015783 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015784 )
15785 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015786 _res = newline_var;
15787 if (_n == _children_capacity) {
15788 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015789 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15790 if (!_new_children) {
15791 p->error_indicator = 1;
15792 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015793 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015794 return NULL;
15795 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015796 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015798 _children[_n++] = _res;
15799 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015801 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015802 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015805 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15806 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015807 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015808 p->error_indicator = 1;
15809 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015810 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015811 return NULL;
15812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015813 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15814 PyMem_Free(_children);
15815 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015816 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015817 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015818}
15819
15820// _loop0_4: ',' expression
15821static asdl_seq *
15822_loop0_4_rule(Parser *p)
15823{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015824 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015825 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015826 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015827 return NULL;
15828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015829 void *_res = NULL;
15830 int _mark = p->mark;
15831 int _start_mark = p->mark;
15832 void **_children = PyMem_Malloc(sizeof(void *));
15833 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015834 p->error_indicator = 1;
15835 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015836 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015837 return NULL;
15838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015839 ssize_t _children_capacity = 1;
15840 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015841 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015843 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015844 return NULL;
15845 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015846 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015847 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015848 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015849 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015850 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015852 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015853 )
15854 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015855 _res = elem;
15856 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015857 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015858 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015859 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015860 return NULL;
15861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015862 if (_n == _children_capacity) {
15863 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15865 if (!_new_children) {
15866 p->error_indicator = 1;
15867 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015868 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015869 return NULL;
15870 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015871 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015873 _children[_n++] = _res;
15874 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015876 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015877 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015880 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15881 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015882 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015883 p->error_indicator = 1;
15884 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15889 PyMem_Free(_children);
15890 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015891 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015892 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015893}
15894
15895// _gather_3: expression _loop0_4
15896static asdl_seq *
15897_gather_3_rule(Parser *p)
15898{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015899 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015901 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015902 return NULL;
15903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015904 asdl_seq * _res = NULL;
15905 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015906 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015908 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015909 return NULL;
15910 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015911 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 -070015912 expr_ty elem;
15913 asdl_seq * seq;
15914 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015915 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015916 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015917 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015918 )
15919 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015920 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 +010015921 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015922 goto done;
15923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015924 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015925 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015928 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015929 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015930 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015931 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015932}
15933
15934// _loop0_6: ',' expression
15935static asdl_seq *
15936_loop0_6_rule(Parser *p)
15937{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015938 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015940 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015941 return NULL;
15942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015943 void *_res = NULL;
15944 int _mark = p->mark;
15945 int _start_mark = p->mark;
15946 void **_children = PyMem_Malloc(sizeof(void *));
15947 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015948 p->error_indicator = 1;
15949 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015950 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015951 return NULL;
15952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015953 ssize_t _children_capacity = 1;
15954 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015955 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015957 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015958 return NULL;
15959 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015960 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015961 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015962 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015963 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015964 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015965 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015966 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015967 )
15968 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015969 _res = elem;
15970 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015971 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015972 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015973 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015974 return NULL;
15975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015976 if (_n == _children_capacity) {
15977 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015978 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15979 if (!_new_children) {
15980 p->error_indicator = 1;
15981 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015982 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015983 return NULL;
15984 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015985 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015987 _children[_n++] = _res;
15988 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015990 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015991 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015994 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15995 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015996 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015997 p->error_indicator = 1;
15998 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16003 PyMem_Free(_children);
16004 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016005 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016006 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016007}
16008
16009// _gather_5: expression _loop0_6
16010static asdl_seq *
16011_gather_5_rule(Parser *p)
16012{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016013 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016014 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016015 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016016 return NULL;
16017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016018 asdl_seq * _res = NULL;
16019 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016020 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016021 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016022 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016023 return NULL;
16024 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016025 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 -070016026 expr_ty elem;
16027 asdl_seq * seq;
16028 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016029 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016030 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016031 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070016032 )
16033 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016034 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 +010016035 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016036 goto done;
16037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016039 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016042 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016043 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016045 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016046}
16047
16048// _loop0_8: ',' expression
16049static asdl_seq *
16050_loop0_8_rule(Parser *p)
16051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016052 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016054 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016055 return NULL;
16056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016057 void *_res = NULL;
16058 int _mark = p->mark;
16059 int _start_mark = p->mark;
16060 void **_children = PyMem_Malloc(sizeof(void *));
16061 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016062 p->error_indicator = 1;
16063 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016064 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016065 return NULL;
16066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016067 ssize_t _children_capacity = 1;
16068 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016069 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016072 return NULL;
16073 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016074 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016075 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016076 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016077 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016078 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016079 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016080 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016081 )
16082 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016083 _res = elem;
16084 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016085 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016086 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016087 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016088 return NULL;
16089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016090 if (_n == _children_capacity) {
16091 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016092 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16093 if (!_new_children) {
16094 p->error_indicator = 1;
16095 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016096 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016097 return NULL;
16098 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016099 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016101 _children[_n++] = _res;
16102 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016104 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016105 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016108 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16109 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016110 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016111 p->error_indicator = 1;
16112 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16117 PyMem_Free(_children);
16118 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016119 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016120 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016121}
16122
16123// _gather_7: expression _loop0_8
16124static asdl_seq *
16125_gather_7_rule(Parser *p)
16126{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016127 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016129 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016130 return NULL;
16131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016132 asdl_seq * _res = NULL;
16133 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016134 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016137 return NULL;
16138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016139 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 -070016140 expr_ty elem;
16141 asdl_seq * seq;
16142 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016143 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016145 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016146 )
16147 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016148 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 +010016149 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016150 goto done;
16151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016152 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016153 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016156 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016157 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016159 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016160}
16161
16162// _loop0_10: ',' expression
16163static asdl_seq *
16164_loop0_10_rule(Parser *p)
16165{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016166 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016168 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016169 return NULL;
16170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016171 void *_res = NULL;
16172 int _mark = p->mark;
16173 int _start_mark = p->mark;
16174 void **_children = PyMem_Malloc(sizeof(void *));
16175 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016176 p->error_indicator = 1;
16177 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016178 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016179 return NULL;
16180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016181 ssize_t _children_capacity = 1;
16182 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016183 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016186 return NULL;
16187 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016188 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016189 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016190 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016191 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016193 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016194 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016195 )
16196 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016197 _res = elem;
16198 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016199 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016200 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016201 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016202 return NULL;
16203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016204 if (_n == _children_capacity) {
16205 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16207 if (!_new_children) {
16208 p->error_indicator = 1;
16209 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016210 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016211 return NULL;
16212 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016213 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016215 _children[_n++] = _res;
16216 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016218 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016219 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016222 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16223 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016224 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016225 p->error_indicator = 1;
16226 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016227 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016228 return NULL;
16229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016230 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16231 PyMem_Free(_children);
16232 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016233 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016234 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016235}
16236
16237// _gather_9: expression _loop0_10
16238static asdl_seq *
16239_gather_9_rule(Parser *p)
16240{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016241 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016243 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016244 return NULL;
16245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016246 asdl_seq * _res = NULL;
16247 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016248 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016251 return NULL;
16252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016253 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 -070016254 expr_ty elem;
16255 asdl_seq * seq;
16256 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016257 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016258 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016259 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016260 )
16261 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016262 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 +010016263 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016264 goto done;
16265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016266 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016267 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016270 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016271 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016272 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016273 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016274}
16275
16276// _loop1_11: statement
16277static asdl_seq *
16278_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016279{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016280 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016283 return NULL;
16284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016285 void *_res = NULL;
16286 int _mark = p->mark;
16287 int _start_mark = p->mark;
16288 void **_children = PyMem_Malloc(sizeof(void *));
16289 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016290 p->error_indicator = 1;
16291 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016293 return NULL;
16294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016295 ssize_t _children_capacity = 1;
16296 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016297 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016299 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016300 return NULL;
16301 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016302 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016303 asdl_seq* statement_var;
16304 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016305 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016306 )
16307 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016308 _res = statement_var;
16309 if (_n == _children_capacity) {
16310 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016311 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16312 if (!_new_children) {
16313 p->error_indicator = 1;
16314 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016315 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016316 return NULL;
16317 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016318 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016320 _children[_n++] = _res;
16321 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016324 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016327 if (_n == 0 || p->error_indicator) {
16328 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016330 return NULL;
16331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016332 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16333 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016334 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016335 p->error_indicator = 1;
16336 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016338 return NULL;
16339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016340 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16341 PyMem_Free(_children);
16342 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016343 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016344 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016345}
16346
Guido van Rossumc001c092020-04-30 12:12:19 -070016347// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016348static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016349_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016350{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016351 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016354 return NULL;
16355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016356 void *_res = NULL;
16357 int _mark = p->mark;
16358 int _start_mark = p->mark;
16359 void **_children = PyMem_Malloc(sizeof(void *));
16360 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016361 p->error_indicator = 1;
16362 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016363 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016364 return NULL;
16365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016366 ssize_t _children_capacity = 1;
16367 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016368 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016369 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016370 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016371 return NULL;
16372 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016373 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016374 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016375 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016376 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016377 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016378 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016379 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016380 )
16381 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016382 _res = elem;
16383 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016384 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016385 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016386 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016387 return NULL;
16388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016389 if (_n == _children_capacity) {
16390 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016391 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16392 if (!_new_children) {
16393 p->error_indicator = 1;
16394 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016396 return NULL;
16397 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016398 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016400 _children[_n++] = _res;
16401 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016403 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016404 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016407 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16408 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016409 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016410 p->error_indicator = 1;
16411 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016412 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016413 return NULL;
16414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016415 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16416 PyMem_Free(_children);
16417 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016418 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016419 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016420}
16421
Guido van Rossumc001c092020-04-30 12:12:19 -070016422// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016423static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016424_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016425{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016426 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016427 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016429 return NULL;
16430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016431 asdl_seq * _res = NULL;
16432 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016433 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016436 return NULL;
16437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016438 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 +010016439 stmt_ty elem;
16440 asdl_seq * seq;
16441 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016442 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016443 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016444 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016445 )
16446 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016447 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 +010016448 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016449 goto done;
16450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016451 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016452 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016455 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016456 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016457 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016458 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016459}
16460
Guido van Rossumc001c092020-04-30 12:12:19 -070016461// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016462static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016463_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016464{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016465 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016466 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016468 return NULL;
16469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016470 void * _res = NULL;
16471 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016472 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016473 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016474 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016475 return NULL;
16476 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016477 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016478 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016479 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016480 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016481 )
16482 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016483 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016484 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016485 goto done;
16486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016487 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016488 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016490 }
16491 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016492 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016493 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016494 return NULL;
16495 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016496 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016497 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016498 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016499 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016500 )
16501 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016502 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016503 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016504 goto done;
16505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016506 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016507 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016510 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016511 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016512 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016513 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016514}
16515
Guido van Rossumc001c092020-04-30 12:12:19 -070016516// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016517static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016518_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016519{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016520 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016523 return NULL;
16524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016525 void * _res = NULL;
16526 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016527 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016530 return NULL;
16531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016532 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016533 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016534 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016535 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016536 )
16537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016538 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016539 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016540 goto done;
16541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016543 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016545 }
16546 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016547 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016548 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016549 return NULL;
16550 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016551 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016552 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016553 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016554 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016555 )
16556 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016557 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016558 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016559 goto done;
16560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016561 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016562 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016564 }
16565 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016567 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016568 return NULL;
16569 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016570 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016571 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016572 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016573 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016574 )
16575 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016576 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016577 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016578 goto done;
16579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016580 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016581 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016584 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016585 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016586 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016587 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016588}
16589
Guido van Rossumc001c092020-04-30 12:12:19 -070016590// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016591static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016592_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016593{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016594 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016597 return NULL;
16598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016599 void * _res = NULL;
16600 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016601 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016603 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016604 return NULL;
16605 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016606 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016607 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016608 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016609 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016610 )
16611 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016612 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016613 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016614 goto done;
16615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016616 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016617 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016619 }
16620 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016621 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016622 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016623 return NULL;
16624 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016625 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016626 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016627 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016628 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016629 )
16630 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016631 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016632 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016633 goto done;
16634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016636 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016639 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016640 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016641 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016642 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016643}
16644
Guido van Rossumc001c092020-04-30 12:12:19 -070016645// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016646static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016647_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016648{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016649 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016652 return NULL;
16653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016654 void * _res = NULL;
16655 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016656 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016659 return NULL;
16660 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016661 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016662 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016663 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016664 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016665 )
16666 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016667 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016668 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016669 goto done;
16670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016671 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016672 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016674 }
16675 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016678 return NULL;
16679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016680 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016681 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016682 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016683 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016684 )
16685 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016686 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016687 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016688 goto done;
16689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016690 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016691 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016694 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016695 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016696 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016697 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016698}
16699
Guido van Rossumc001c092020-04-30 12:12:19 -070016700// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016701static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016702_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016703{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016704 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016707 return NULL;
16708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016709 void * _res = NULL;
16710 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016711 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016713 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016714 return NULL;
16715 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016716 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016717 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016718 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016719 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016720 )
16721 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016722 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016723 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016724 goto done;
16725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016726 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016727 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016729 }
16730 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016731 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016732 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016733 return NULL;
16734 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016735 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016736 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016737 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016738 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016739 )
16740 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016741 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016742 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016743 goto done;
16744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016746 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016753}
16754
Guido van Rossumc001c092020-04-30 12:12:19 -070016755// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016756static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016757_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016762 return NULL;
16763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016764 void * _res = NULL;
16765 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016766 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016769 return NULL;
16770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016771 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016772 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016773 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016774 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016775 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016776 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016777 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016778 )
16779 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016780 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 +010016781 _res = d;
16782 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016783 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016784 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016785 return NULL;
16786 }
16787 goto done;
16788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016789 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016790 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016793 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016794 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016795 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016796 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016797}
16798
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016799// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016800static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016801_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016802{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016803 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016804 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016805 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016806 return NULL;
16807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016808 void * _res = NULL;
16809 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016810 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016812 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016813 return NULL;
16814 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016815 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016816 Token * _literal;
16817 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016818 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016819 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016820 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016821 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016822 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016823 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016824 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016825 )
16826 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016827 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 +010016828 _res = b;
16829 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016830 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016832 return NULL;
16833 }
16834 goto done;
16835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016837 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016839 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016840 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016843 return NULL;
16844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016845 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 +030016846 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016847 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016848 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016849 )
16850 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016851 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 +030016852 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016853 goto done;
16854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016855 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016856 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016859 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016860 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016861 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016862 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016863}
16864
Guido van Rossumc001c092020-04-30 12:12:19 -070016865// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016866static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016867_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016868{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016869 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016871 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016872 return NULL;
16873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016874 void * _res = NULL;
16875 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016876 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016878 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016879 return NULL;
16880 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016881 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016882 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016883 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016884 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016885 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016886 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016887 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016888 )
16889 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016890 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 +010016891 _res = d;
16892 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016893 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016895 return NULL;
16896 }
16897 goto done;
16898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016899 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016900 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016903 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016904 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016905 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016906 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016907}
16908
Guido van Rossumc001c092020-04-30 12:12:19 -070016909// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016910static asdl_seq *
16911_loop1_22_rule(Parser *p)
16912{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016913 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016915 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016916 return NULL;
16917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016918 void *_res = NULL;
16919 int _mark = p->mark;
16920 int _start_mark = p->mark;
16921 void **_children = PyMem_Malloc(sizeof(void *));
16922 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016923 p->error_indicator = 1;
16924 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016925 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016926 return NULL;
16927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016928 ssize_t _children_capacity = 1;
16929 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016930 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016933 return NULL;
16934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016935 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016936 void *_tmp_139_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016937 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016938 (_tmp_139_var = _tmp_139_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016939 )
16940 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016941 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016942 if (_n == _children_capacity) {
16943 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016944 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16945 if (!_new_children) {
16946 p->error_indicator = 1;
16947 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016948 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016949 return NULL;
16950 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016951 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016953 _children[_n++] = _res;
16954 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016956 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016957 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016960 if (_n == 0 || p->error_indicator) {
16961 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016962 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016963 return NULL;
16964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016965 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16966 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016967 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016968 p->error_indicator = 1;
16969 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016970 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016971 return NULL;
16972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016973 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16974 PyMem_Free(_children);
16975 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016977 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016978}
16979
Guido van Rossumc001c092020-04-30 12:12:19 -070016980// _tmp_23: yield_expr | star_expressions
16981static void *
16982_tmp_23_rule(Parser *p)
16983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016984 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016986 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016987 return NULL;
16988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016989 void * _res = NULL;
16990 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016991 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016994 return NULL;
16995 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016996 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 -070016997 expr_ty yield_expr_var;
16998 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016999 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070017000 )
17001 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017002 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 +010017003 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017004 goto done;
17005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017006 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017007 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017009 }
17010 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017011 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017012 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017013 return NULL;
17014 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017015 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 -070017016 expr_ty star_expressions_var;
17017 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017018 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070017019 )
17020 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017021 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 +010017022 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017023 goto done;
17024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017026 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017029 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017030 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017032 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017033}
17034
17035// _tmp_24: yield_expr | star_expressions
17036static void *
17037_tmp_24_rule(Parser *p)
17038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017039 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017040 if (p->error_indicator) {
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 void * _res = NULL;
17045 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017046 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017049 return NULL;
17050 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017051 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 -070017052 expr_ty yield_expr_var;
17053 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017054 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070017055 )
17056 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017057 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 +010017058 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017059 goto done;
17060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017061 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017062 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017064 }
17065 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017066 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017067 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017068 return NULL;
17069 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017070 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 -070017071 expr_ty star_expressions_var;
17072 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017073 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070017074 )
17075 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017076 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 +010017077 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017078 goto done;
17079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017080 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017081 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017084 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017085 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017086 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017087 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017088}
17089
17090// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017091static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017092_loop0_26_rule(Parser *p)
17093{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017094 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017095 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017096 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017097 return NULL;
17098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017099 void *_res = NULL;
17100 int _mark = p->mark;
17101 int _start_mark = p->mark;
17102 void **_children = PyMem_Malloc(sizeof(void *));
17103 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017104 p->error_indicator = 1;
17105 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017106 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017107 return NULL;
17108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017109 ssize_t _children_capacity = 1;
17110 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017111 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017113 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017114 return NULL;
17115 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017116 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017117 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017118 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017119 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017120 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017121 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017122 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017123 )
17124 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017125 _res = elem;
17126 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017127 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017128 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017129 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017130 return NULL;
17131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017132 if (_n == _children_capacity) {
17133 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017134 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17135 if (!_new_children) {
17136 p->error_indicator = 1;
17137 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017138 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017139 return NULL;
17140 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017141 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017143 _children[_n++] = _res;
17144 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017146 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017147 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017150 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17151 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017152 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017153 p->error_indicator = 1;
17154 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17159 PyMem_Free(_children);
17160 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017161 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017162 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017163}
17164
17165// _gather_25: NAME _loop0_26
17166static asdl_seq *
17167_gather_25_rule(Parser *p)
17168{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017169 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017170 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017171 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017172 return NULL;
17173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017174 asdl_seq * _res = NULL;
17175 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017176 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017177 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017178 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017179 return NULL;
17180 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017181 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 -070017182 expr_ty elem;
17183 asdl_seq * seq;
17184 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017185 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017186 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017187 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017188 )
17189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017190 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 +010017191 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017192 goto done;
17193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017194 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017195 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017198 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017199 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017200 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017201 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017202}
17203
17204// _loop0_28: ',' NAME
17205static asdl_seq *
17206_loop0_28_rule(Parser *p)
17207{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017208 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017210 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017211 return NULL;
17212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017213 void *_res = NULL;
17214 int _mark = p->mark;
17215 int _start_mark = p->mark;
17216 void **_children = PyMem_Malloc(sizeof(void *));
17217 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017218 p->error_indicator = 1;
17219 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017220 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017221 return NULL;
17222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017223 ssize_t _children_capacity = 1;
17224 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017225 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017226 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017227 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017228 return NULL;
17229 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017230 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017231 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017232 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017233 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017234 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017235 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017236 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017237 )
17238 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017239 _res = elem;
17240 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017241 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017242 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017243 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017244 return NULL;
17245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017246 if (_n == _children_capacity) {
17247 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017248 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17249 if (!_new_children) {
17250 p->error_indicator = 1;
17251 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017252 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017253 return NULL;
17254 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017255 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017257 _children[_n++] = _res;
17258 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017260 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017261 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017264 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17265 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017266 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017267 p->error_indicator = 1;
17268 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017269 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017270 return NULL;
17271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017272 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17273 PyMem_Free(_children);
17274 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017275 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017276 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017277}
17278
17279// _gather_27: NAME _loop0_28
17280static asdl_seq *
17281_gather_27_rule(Parser *p)
17282{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017283 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017284 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017285 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017286 return NULL;
17287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017288 asdl_seq * _res = NULL;
17289 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017290 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017292 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017293 return NULL;
17294 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017295 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 -070017296 expr_ty elem;
17297 asdl_seq * seq;
17298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017299 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017300 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017301 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017302 )
17303 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017304 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 +010017305 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017306 goto done;
17307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017308 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017309 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017312 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017313 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017314 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017315 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017316}
17317
17318// _tmp_29: ',' expression
17319static void *
17320_tmp_29_rule(Parser *p)
17321{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017322 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017323 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017324 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017325 return NULL;
17326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017327 void * _res = NULL;
17328 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017329 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017331 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017332 return NULL;
17333 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017334 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017335 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017336 expr_ty z;
17337 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017338 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017339 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017340 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017341 )
17342 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017343 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017344 _res = z;
17345 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017346 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017347 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017348 return NULL;
17349 }
17350 goto done;
17351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017353 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017356 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017357 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017358 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017359 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017360}
17361
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017362// _tmp_30: ';' | NEWLINE
17363static void *
17364_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017365{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017366 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017367 if (p->error_indicator) {
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 Nikolaoua5442b22020-06-19 03:03:58 +030017371 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017372 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017373 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017375 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017376 return NULL;
17377 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017378 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17379 Token * _literal;
17380 if (
17381 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017382 )
17383 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017384 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17385 _res = _literal;
17386 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017388 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017389 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017391 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017392 { // NEWLINE
17393 if (p->error_indicator) {
17394 D(p->level--);
17395 return NULL;
17396 }
17397 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17398 Token * newline_var;
17399 if (
17400 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17401 )
17402 {
17403 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17404 _res = newline_var;
17405 goto done;
17406 }
17407 p->mark = _mark;
17408 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017410 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017411 _res = NULL;
17412 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017413 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017414 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017415}
17416
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017417// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017418static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017419_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017420{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017421 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017423 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017424 return NULL;
17425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017426 void *_res = NULL;
17427 int _mark = p->mark;
17428 int _start_mark = p->mark;
17429 void **_children = PyMem_Malloc(sizeof(void *));
17430 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017431 p->error_indicator = 1;
17432 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017433 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017434 return NULL;
17435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017436 ssize_t _children_capacity = 1;
17437 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017438 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017441 return NULL;
17442 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017443 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017444 void *_tmp_140_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017445 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017446 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017447 )
17448 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017449 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017450 if (_n == _children_capacity) {
17451 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17453 if (!_new_children) {
17454 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017459 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017461 _children[_n++] = _res;
17462 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017464 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017465 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17467 }
17468 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17469 if (!_seq) {
17470 PyMem_Free(_children);
17471 p->error_indicator = 1;
17472 PyErr_NoMemory();
17473 D(p->level--);
17474 return NULL;
17475 }
17476 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17477 PyMem_Free(_children);
17478 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17479 D(p->level--);
17480 return _seq;
17481}
17482
17483// _loop1_32: ('.' | '...')
17484static asdl_seq *
17485_loop1_32_rule(Parser *p)
17486{
17487 D(p->level++);
17488 if (p->error_indicator) {
17489 D(p->level--);
17490 return NULL;
17491 }
17492 void *_res = NULL;
17493 int _mark = p->mark;
17494 int _start_mark = p->mark;
17495 void **_children = PyMem_Malloc(sizeof(void *));
17496 if (!_children) {
17497 p->error_indicator = 1;
17498 PyErr_NoMemory();
17499 D(p->level--);
17500 return NULL;
17501 }
17502 ssize_t _children_capacity = 1;
17503 ssize_t _n = 0;
17504 { // ('.' | '...')
17505 if (p->error_indicator) {
17506 D(p->level--);
17507 return NULL;
17508 }
17509 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017510 void *_tmp_141_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017511 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017512 (_tmp_141_var = _tmp_141_rule(p)) // '.' | '...'
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017513 )
17514 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017515 _res = _tmp_141_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017516 if (_n == _children_capacity) {
17517 _children_capacity *= 2;
17518 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17519 if (!_new_children) {
17520 p->error_indicator = 1;
17521 PyErr_NoMemory();
17522 D(p->level--);
17523 return NULL;
17524 }
17525 _children = _new_children;
17526 }
17527 _children[_n++] = _res;
17528 _mark = p->mark;
17529 }
17530 p->mark = _mark;
17531 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017533 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017534 if (_n == 0 || p->error_indicator) {
17535 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017536 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017537 return NULL;
17538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017539 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17540 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017541 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017542 p->error_indicator = 1;
17543 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017544 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017545 return NULL;
17546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017547 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17548 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017549 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017550 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017551 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017552}
17553
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017554// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017555static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017556_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017557{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017558 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017559 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017560 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017561 return NULL;
17562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017563 void *_res = NULL;
17564 int _mark = p->mark;
17565 int _start_mark = p->mark;
17566 void **_children = PyMem_Malloc(sizeof(void *));
17567 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017568 p->error_indicator = 1;
17569 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017570 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017571 return NULL;
17572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017573 ssize_t _children_capacity = 1;
17574 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017575 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017578 return NULL;
17579 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017580 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 +010017581 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017582 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017583 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017584 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017585 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017586 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017587 )
17588 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017589 _res = elem;
17590 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017591 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017592 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017594 return NULL;
17595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017596 if (_n == _children_capacity) {
17597 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17599 if (!_new_children) {
17600 p->error_indicator = 1;
17601 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017603 return NULL;
17604 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017605 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017607 _children[_n++] = _res;
17608 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017609 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017610 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017611 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017614 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17615 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017616 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017617 p->error_indicator = 1;
17618 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017619 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017620 return NULL;
17621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017622 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17623 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017624 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017625 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017626 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017627}
17628
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017629// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017630static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017631_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017632{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017633 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017634 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017635 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017636 return NULL;
17637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017638 asdl_seq * _res = NULL;
17639 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017640 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017641 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017642 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017643 return NULL;
17644 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017645 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 +010017646 alias_ty elem;
17647 asdl_seq * seq;
17648 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017649 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017650 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017651 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017652 )
17653 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017654 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 +010017655 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017656 goto done;
17657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017658 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017659 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017662 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017663 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017664 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017665 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017666}
17667
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017668// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017669static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017670_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017671{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017672 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017673 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017675 return NULL;
17676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017677 void * _res = NULL;
17678 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017679 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017681 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017682 return NULL;
17683 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017684 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017685 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017686 expr_ty z;
17687 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017688 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017690 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017691 )
17692 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017693 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 +010017694 _res = z;
17695 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017696 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017698 return NULL;
17699 }
17700 goto done;
17701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017702 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017703 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017706 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017707 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017708 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017709 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017710}
17711
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017712// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017713static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017714_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017715{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017716 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017719 return NULL;
17720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017721 void *_res = NULL;
17722 int _mark = p->mark;
17723 int _start_mark = p->mark;
17724 void **_children = PyMem_Malloc(sizeof(void *));
17725 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017726 p->error_indicator = 1;
17727 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017728 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017729 return NULL;
17730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017731 ssize_t _children_capacity = 1;
17732 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017733 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017735 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017736 return NULL;
17737 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017738 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 +010017739 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017740 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017741 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017742 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017743 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017744 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017745 )
17746 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017747 _res = elem;
17748 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017749 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017750 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017752 return NULL;
17753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017754 if (_n == _children_capacity) {
17755 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017756 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17757 if (!_new_children) {
17758 p->error_indicator = 1;
17759 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017760 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017761 return NULL;
17762 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017763 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017765 _children[_n++] = _res;
17766 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017768 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017769 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017772 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17773 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017774 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017775 p->error_indicator = 1;
17776 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017777 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017778 return NULL;
17779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017780 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17781 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017782 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017783 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017784 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017785}
17786
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017787// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017788static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017789_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017790{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017791 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017794 return NULL;
17795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017796 asdl_seq * _res = NULL;
17797 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017798 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017801 return NULL;
17802 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017803 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 +010017804 alias_ty elem;
17805 asdl_seq * seq;
17806 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017807 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017808 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017809 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017810 )
17811 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017812 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 +010017813 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017814 goto done;
17815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017816 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017817 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017820 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017821 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017822 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017823 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017824}
17825
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017826// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017827static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017828_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017829{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017830 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017831 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017833 return NULL;
17834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017835 void * _res = NULL;
17836 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017837 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017840 return NULL;
17841 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017842 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017843 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017844 expr_ty z;
17845 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017846 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017848 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017849 )
17850 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017851 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 +010017852 _res = z;
17853 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017854 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017855 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017856 return NULL;
17857 }
17858 goto done;
17859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017860 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017861 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017864 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017865 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017866 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017867 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017868}
17869
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017870// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017871static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017872_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017873{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017874 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017877 return NULL;
17878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017879 void *_res = NULL;
17880 int _mark = p->mark;
17881 int _start_mark = p->mark;
17882 void **_children = PyMem_Malloc(sizeof(void *));
17883 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017884 p->error_indicator = 1;
17885 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017887 return NULL;
17888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017889 ssize_t _children_capacity = 1;
17890 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017891 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017892 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017893 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017894 return NULL;
17895 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017896 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017897 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017898 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017899 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017900 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017901 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017902 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017903 )
17904 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017905 _res = elem;
17906 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017907 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017908 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017909 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017910 return NULL;
17911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017912 if (_n == _children_capacity) {
17913 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017914 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17915 if (!_new_children) {
17916 p->error_indicator = 1;
17917 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017919 return NULL;
17920 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017921 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017923 _children[_n++] = _res;
17924 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017926 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017927 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017930 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17931 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017932 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017933 p->error_indicator = 1;
17934 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17939 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017940 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017941 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017942 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017943}
17944
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017945// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017946static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017947_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017948{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017949 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017951 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017952 return NULL;
17953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017954 asdl_seq * _res = NULL;
17955 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017956 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017957 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017958 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017959 return NULL;
17960 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017961 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 +010017962 withitem_ty elem;
17963 asdl_seq * seq;
17964 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017965 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017966 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017967 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017968 )
17969 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017970 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 +010017971 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017972 goto done;
17973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017974 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017975 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017978 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017979 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017980 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017981 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017982}
17983
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017984// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017985static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017986_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017987{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017988 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017991 return NULL;
17992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017993 void *_res = NULL;
17994 int _mark = p->mark;
17995 int _start_mark = p->mark;
17996 void **_children = PyMem_Malloc(sizeof(void *));
17997 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017998 p->error_indicator = 1;
17999 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018001 return NULL;
18002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018003 ssize_t _children_capacity = 1;
18004 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018005 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018006 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018007 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018008 return NULL;
18009 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018010 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018011 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018012 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018013 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018014 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018015 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018016 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018017 )
18018 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018019 _res = elem;
18020 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018021 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018022 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018024 return NULL;
18025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018026 if (_n == _children_capacity) {
18027 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018028 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18029 if (!_new_children) {
18030 p->error_indicator = 1;
18031 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018032 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018033 return NULL;
18034 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018035 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018037 _children[_n++] = _res;
18038 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018040 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018041 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018044 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18045 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018046 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018047 p->error_indicator = 1;
18048 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018049 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018050 return NULL;
18051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018052 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18053 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018054 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018055 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018056 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018057}
18058
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018059// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018060static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018061_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018062{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018063 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018065 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018066 return NULL;
18067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018068 asdl_seq * _res = NULL;
18069 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018070 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018072 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018073 return NULL;
18074 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018075 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 +010018076 withitem_ty elem;
18077 asdl_seq * seq;
18078 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018079 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018080 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018081 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018082 )
18083 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018084 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 +010018085 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018086 goto done;
18087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018088 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018089 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018092 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018093 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018095 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018096}
18097
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018098// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018099static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018100_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018102 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018104 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018105 return NULL;
18106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018107 void *_res = NULL;
18108 int _mark = p->mark;
18109 int _start_mark = p->mark;
18110 void **_children = PyMem_Malloc(sizeof(void *));
18111 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018112 p->error_indicator = 1;
18113 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018114 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018115 return NULL;
18116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018117 ssize_t _children_capacity = 1;
18118 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018119 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018120 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018121 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018122 return NULL;
18123 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018124 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018125 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018126 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018127 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018128 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018129 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018130 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018131 )
18132 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018133 _res = elem;
18134 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018135 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018136 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018137 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018138 return NULL;
18139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018140 if (_n == _children_capacity) {
18141 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018142 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18143 if (!_new_children) {
18144 p->error_indicator = 1;
18145 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018146 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018147 return NULL;
18148 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018149 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018151 _children[_n++] = _res;
18152 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018154 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018155 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018158 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18159 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018160 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018161 p->error_indicator = 1;
18162 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18167 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018168 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018169 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018170 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018171}
18172
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018173// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018174static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018175_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018176{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018177 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018178 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018179 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018180 return NULL;
18181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018182 asdl_seq * _res = NULL;
18183 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018184 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018186 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018187 return NULL;
18188 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018189 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 +030018190 withitem_ty elem;
18191 asdl_seq * seq;
18192 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018193 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018194 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018195 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018196 )
18197 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018198 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 +010018199 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018200 goto done;
18201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018202 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018203 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018206 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018207 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018208 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018209 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018210}
18211
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018212// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018213static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018214_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018215{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018216 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018218 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018219 return NULL;
18220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018221 void *_res = NULL;
18222 int _mark = p->mark;
18223 int _start_mark = p->mark;
18224 void **_children = PyMem_Malloc(sizeof(void *));
18225 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018226 p->error_indicator = 1;
18227 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018228 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018229 return NULL;
18230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018231 ssize_t _children_capacity = 1;
18232 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018233 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018234 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018235 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018236 return NULL;
18237 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018238 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018239 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018240 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018241 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018242 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018243 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018244 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018245 )
18246 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018247 _res = elem;
18248 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018249 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018250 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018251 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018252 return NULL;
18253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018254 if (_n == _children_capacity) {
18255 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018256 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18257 if (!_new_children) {
18258 p->error_indicator = 1;
18259 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018260 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018261 return NULL;
18262 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018263 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018265 _children[_n++] = _res;
18266 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018268 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018269 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018272 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18273 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018274 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018275 p->error_indicator = 1;
18276 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018277 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018278 return NULL;
18279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018280 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18281 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018282 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018283 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018284 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018285}
18286
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018287// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018288static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018289_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018290{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018291 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018293 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018294 return NULL;
18295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018296 asdl_seq * _res = NULL;
18297 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018298 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018300 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018301 return NULL;
18302 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018303 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 +030018304 withitem_ty elem;
18305 asdl_seq * seq;
18306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018307 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018308 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018309 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018310 )
18311 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018312 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 +010018313 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018314 goto done;
18315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018316 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018317 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018320 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018321 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018322 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018323 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018324}
18325
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018326// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018327static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018328_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018329{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018330 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018331 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018332 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018333 return NULL;
18334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018335 void * _res = NULL;
18336 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018337 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018340 return NULL;
18341 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018342 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18343 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018344 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018345 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018346 )
18347 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018348 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18349 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018350 goto done;
18351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018352 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018353 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18355 }
18356 { // ')'
18357 if (p->error_indicator) {
18358 D(p->level--);
18359 return NULL;
18360 }
18361 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18362 Token * _literal;
18363 if (
18364 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18365 )
18366 {
18367 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18368 _res = _literal;
18369 goto done;
18370 }
18371 p->mark = _mark;
18372 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18374 }
18375 { // ':'
18376 if (p->error_indicator) {
18377 D(p->level--);
18378 return NULL;
18379 }
18380 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18381 Token * _literal;
18382 if (
18383 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18384 )
18385 {
18386 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18387 _res = _literal;
18388 goto done;
18389 }
18390 p->mark = _mark;
18391 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018394 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018395 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018396 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018397 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018398}
18399
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018400// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018401static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018402_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018403{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018404 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018407 return NULL;
18408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018409 void *_res = NULL;
18410 int _mark = p->mark;
18411 int _start_mark = p->mark;
18412 void **_children = PyMem_Malloc(sizeof(void *));
18413 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018414 p->error_indicator = 1;
18415 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018416 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018417 return NULL;
18418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018419 ssize_t _children_capacity = 1;
18420 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018421 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018424 return NULL;
18425 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018426 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018427 excepthandler_ty except_block_var;
18428 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018429 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018430 )
18431 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018432 _res = except_block_var;
18433 if (_n == _children_capacity) {
18434 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018435 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18436 if (!_new_children) {
18437 p->error_indicator = 1;
18438 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018439 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018440 return NULL;
18441 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018442 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018444 _children[_n++] = _res;
18445 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018447 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018448 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018451 if (_n == 0 || p->error_indicator) {
18452 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018454 return NULL;
18455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018456 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18457 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018458 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018459 p->error_indicator = 1;
18460 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018461 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018462 return NULL;
18463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018464 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18465 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018466 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018467 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018468 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018469}
18470
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018471// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018472static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018473_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018474{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018475 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018476 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018478 return NULL;
18479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018480 void * _res = NULL;
18481 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018482 { // 'as' NAME
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 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018487 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018488 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018489 expr_ty z;
18490 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018491 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018492 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018493 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018494 )
18495 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018496 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 +010018497 _res = z;
18498 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018499 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018501 return NULL;
18502 }
18503 goto done;
18504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018505 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018506 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018509 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018510 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018511 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018512 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018513}
18514
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018515// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018516static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018517_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018518{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018519 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018521 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018522 return NULL;
18523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018524 void * _res = NULL;
18525 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018526 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018527 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018528 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018529 return NULL;
18530 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018531 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018532 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018533 expr_ty z;
18534 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018535 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018536 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018537 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018538 )
18539 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018540 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 +010018541 _res = z;
18542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018545 return NULL;
18546 }
18547 goto done;
18548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018550 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018553 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018554 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018555 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018556 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018557}
18558
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018559// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018560static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018561_tmp_51_rule(Parser *p)
18562{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018563 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018565 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018566 return NULL;
18567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018568 void * _res = NULL;
18569 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018570 { // '->' expression
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 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018575 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018576 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018577 expr_ty z;
18578 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018579 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018580 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018581 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018582 )
18583 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018584 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018585 _res = z;
18586 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018587 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018588 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018589 return NULL;
18590 }
18591 goto done;
18592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018593 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018594 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018597 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018598 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018599 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018600 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018601}
18602
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018603// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018604static void *
18605_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018606{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018607 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018609 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018610 return NULL;
18611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018612 void * _res = NULL;
18613 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018614 { // '->' expression
18615 if (p->error_indicator) {
18616 D(p->level--);
18617 return NULL;
18618 }
18619 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18620 Token * _literal;
18621 expr_ty z;
18622 if (
18623 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18624 &&
18625 (z = expression_rule(p)) // expression
18626 )
18627 {
18628 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18629 _res = z;
18630 if (_res == NULL && PyErr_Occurred()) {
18631 p->error_indicator = 1;
18632 D(p->level--);
18633 return NULL;
18634 }
18635 goto done;
18636 }
18637 p->mark = _mark;
18638 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18640 }
18641 _res = NULL;
18642 done:
18643 D(p->level--);
18644 return _res;
18645}
18646
18647// _tmp_53: NEWLINE INDENT
18648static void *
18649_tmp_53_rule(Parser *p)
18650{
18651 D(p->level++);
18652 if (p->error_indicator) {
18653 D(p->level--);
18654 return NULL;
18655 }
18656 void * _res = NULL;
18657 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018658 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018659 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018660 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018661 return NULL;
18662 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018663 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018664 Token * indent_var;
18665 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018666 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018667 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018668 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018669 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018670 )
18671 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018672 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 +010018673 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018674 goto done;
18675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018676 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018677 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018680 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018681 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018682 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018683 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018684}
18685
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018686// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018687static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018688_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018689{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018690 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018691 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018693 return NULL;
18694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018695 void *_res = NULL;
18696 int _mark = p->mark;
18697 int _start_mark = p->mark;
18698 void **_children = PyMem_Malloc(sizeof(void *));
18699 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018700 p->error_indicator = 1;
18701 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018702 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018703 return NULL;
18704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018705 ssize_t _children_capacity = 1;
18706 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018707 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018709 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018710 return NULL;
18711 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018712 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 -070018713 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018714 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018715 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018716 )
18717 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018718 _res = param_no_default_var;
18719 if (_n == _children_capacity) {
18720 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018721 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18722 if (!_new_children) {
18723 p->error_indicator = 1;
18724 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018725 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018726 return NULL;
18727 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018728 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018730 _children[_n++] = _res;
18731 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018733 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018734 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018736 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018737 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18738 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018739 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018740 p->error_indicator = 1;
18741 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018742 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018743 return NULL;
18744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018745 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18746 PyMem_Free(_children);
18747 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018748 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018749 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018750}
18751
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018752// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018753static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018754_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018755{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018756 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018758 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018759 return NULL;
18760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018761 void *_res = NULL;
18762 int _mark = p->mark;
18763 int _start_mark = p->mark;
18764 void **_children = PyMem_Malloc(sizeof(void *));
18765 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018766 p->error_indicator = 1;
18767 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018768 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018769 return NULL;
18770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018771 ssize_t _children_capacity = 1;
18772 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018773 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018775 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018776 return NULL;
18777 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018778 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 -070018779 NameDefaultPair* param_with_default_var;
18780 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018781 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018782 )
18783 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018784 _res = param_with_default_var;
18785 if (_n == _children_capacity) {
18786 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018787 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18788 if (!_new_children) {
18789 p->error_indicator = 1;
18790 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018791 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018792 return NULL;
18793 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018794 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018796 _children[_n++] = _res;
18797 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018799 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018800 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018803 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18804 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018805 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018806 p->error_indicator = 1;
18807 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018808 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018809 return NULL;
18810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018811 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18812 PyMem_Free(_children);
18813 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018815 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018816}
18817
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018818// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018819static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018820_loop0_56_rule(Parser *p)
18821{
18822 D(p->level++);
18823 if (p->error_indicator) {
18824 D(p->level--);
18825 return NULL;
18826 }
18827 void *_res = NULL;
18828 int _mark = p->mark;
18829 int _start_mark = p->mark;
18830 void **_children = PyMem_Malloc(sizeof(void *));
18831 if (!_children) {
18832 p->error_indicator = 1;
18833 PyErr_NoMemory();
18834 D(p->level--);
18835 return NULL;
18836 }
18837 ssize_t _children_capacity = 1;
18838 ssize_t _n = 0;
18839 { // param_with_default
18840 if (p->error_indicator) {
18841 D(p->level--);
18842 return NULL;
18843 }
18844 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18845 NameDefaultPair* param_with_default_var;
18846 while (
18847 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18848 )
18849 {
18850 _res = param_with_default_var;
18851 if (_n == _children_capacity) {
18852 _children_capacity *= 2;
18853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18854 if (!_new_children) {
18855 p->error_indicator = 1;
18856 PyErr_NoMemory();
18857 D(p->level--);
18858 return NULL;
18859 }
18860 _children = _new_children;
18861 }
18862 _children[_n++] = _res;
18863 _mark = p->mark;
18864 }
18865 p->mark = _mark;
18866 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18868 }
18869 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18870 if (!_seq) {
18871 PyMem_Free(_children);
18872 p->error_indicator = 1;
18873 PyErr_NoMemory();
18874 D(p->level--);
18875 return NULL;
18876 }
18877 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18878 PyMem_Free(_children);
18879 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18880 D(p->level--);
18881 return _seq;
18882}
18883
18884// _loop1_57: param_no_default
18885static asdl_seq *
18886_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018887{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018888 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018890 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018891 return NULL;
18892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018893 void *_res = NULL;
18894 int _mark = p->mark;
18895 int _start_mark = p->mark;
18896 void **_children = PyMem_Malloc(sizeof(void *));
18897 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018898 p->error_indicator = 1;
18899 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018900 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018901 return NULL;
18902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018903 ssize_t _children_capacity = 1;
18904 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018905 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018907 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018908 return NULL;
18909 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018910 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 -070018911 arg_ty param_no_default_var;
18912 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018913 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018914 )
18915 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018916 _res = param_no_default_var;
18917 if (_n == _children_capacity) {
18918 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018919 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18920 if (!_new_children) {
18921 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018926 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018928 _children[_n++] = _res;
18929 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018931 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018932 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018935 if (_n == 0 || p->error_indicator) {
18936 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018937 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018938 return NULL;
18939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018940 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18941 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018942 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018943 p->error_indicator = 1;
18944 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018945 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018946 return NULL;
18947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018948 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18949 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018950 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018952 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018953}
18954
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018955// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018956static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018957_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018958{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018959 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018960 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018962 return NULL;
18963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018964 void *_res = NULL;
18965 int _mark = p->mark;
18966 int _start_mark = p->mark;
18967 void **_children = PyMem_Malloc(sizeof(void *));
18968 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018969 p->error_indicator = 1;
18970 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018971 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018972 return NULL;
18973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018974 ssize_t _children_capacity = 1;
18975 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018976 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018978 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018979 return NULL;
18980 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018981 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 -070018982 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018983 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018984 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018985 )
18986 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018987 _res = param_with_default_var;
18988 if (_n == _children_capacity) {
18989 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018990 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18991 if (!_new_children) {
18992 p->error_indicator = 1;
18993 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018994 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018995 return NULL;
18996 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018997 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018999 _children[_n++] = _res;
19000 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019002 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019003 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019006 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19007 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019008 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019009 p->error_indicator = 1;
19010 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019012 return NULL;
19013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019014 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19015 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019016 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019017 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019018 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019019}
19020
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019021// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019022static asdl_seq *
19023_loop1_59_rule(Parser *p)
19024{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019025 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019026 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019027 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019028 return NULL;
19029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019030 void *_res = NULL;
19031 int _mark = p->mark;
19032 int _start_mark = p->mark;
19033 void **_children = PyMem_Malloc(sizeof(void *));
19034 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019035 p->error_indicator = 1;
19036 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019037 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019038 return NULL;
19039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019040 ssize_t _children_capacity = 1;
19041 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019042 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019045 return NULL;
19046 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019047 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19048 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019049 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019050 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019051 )
19052 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019053 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019054 if (_n == _children_capacity) {
19055 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019056 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19057 if (!_new_children) {
19058 p->error_indicator = 1;
19059 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019060 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019061 return NULL;
19062 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019063 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019065 _children[_n++] = _res;
19066 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019069 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019072 if (_n == 0 || p->error_indicator) {
19073 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019074 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019075 return NULL;
19076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019077 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19078 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019079 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019080 p->error_indicator = 1;
19081 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019082 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019083 return NULL;
19084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019085 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19086 PyMem_Free(_children);
19087 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019088 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019089 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019090}
19091
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019092// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019093static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019094_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070019095{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019096 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019098 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019099 return NULL;
19100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019101 void *_res = NULL;
19102 int _mark = p->mark;
19103 int _start_mark = p->mark;
19104 void **_children = PyMem_Malloc(sizeof(void *));
19105 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019106 p->error_indicator = 1;
19107 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019108 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019109 return NULL;
19110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019111 ssize_t _children_capacity = 1;
19112 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019113 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019116 return NULL;
19117 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019118 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 +030019119 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019120 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019121 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019122 )
19123 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019124 _res = param_no_default_var;
19125 if (_n == _children_capacity) {
19126 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019127 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19128 if (!_new_children) {
19129 p->error_indicator = 1;
19130 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019131 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019132 return NULL;
19133 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019134 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019136 _children[_n++] = _res;
19137 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019139 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019140 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019143 if (_n == 0 || p->error_indicator) {
19144 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019145 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019146 return NULL;
19147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019148 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19149 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019150 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019151 p->error_indicator = 1;
19152 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019153 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019154 return NULL;
19155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019156 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19157 PyMem_Free(_children);
19158 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019159 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019160 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019161}
19162
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019163// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019164static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019165_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019166{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019167 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019169 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019170 return NULL;
19171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019172 void *_res = NULL;
19173 int _mark = p->mark;
19174 int _start_mark = p->mark;
19175 void **_children = PyMem_Malloc(sizeof(void *));
19176 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019177 p->error_indicator = 1;
19178 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019179 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019180 return NULL;
19181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019182 ssize_t _children_capacity = 1;
19183 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019184 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019186 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019187 return NULL;
19188 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019189 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 +030019190 arg_ty param_no_default_var;
19191 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019192 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019193 )
19194 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019195 _res = param_no_default_var;
19196 if (_n == _children_capacity) {
19197 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019198 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19199 if (!_new_children) {
19200 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019205 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019207 _children[_n++] = _res;
19208 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019210 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019211 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019214 if (_n == 0 || p->error_indicator) {
19215 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019216 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019217 return NULL;
19218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019219 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19220 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019221 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019222 p->error_indicator = 1;
19223 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019224 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019225 return NULL;
19226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019227 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19228 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019229 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019230 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019231 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019232}
19233
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019234// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019235static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019236_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019237{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019238 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019240 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019241 return NULL;
19242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019243 void *_res = NULL;
19244 int _mark = p->mark;
19245 int _start_mark = p->mark;
19246 void **_children = PyMem_Malloc(sizeof(void *));
19247 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019248 p->error_indicator = 1;
19249 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019250 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019251 return NULL;
19252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019253 ssize_t _children_capacity = 1;
19254 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019255 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019258 return NULL;
19259 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019260 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 +030019261 arg_ty param_no_default_var;
19262 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019263 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019264 )
19265 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019266 _res = param_no_default_var;
19267 if (_n == _children_capacity) {
19268 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19270 if (!_new_children) {
19271 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019276 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019278 _children[_n++] = _res;
19279 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019281 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019282 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019285 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19286 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019287 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019288 p->error_indicator = 1;
19289 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019290 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019291 return NULL;
19292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019293 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19294 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019295 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019296 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019297 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019298}
19299
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019300// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019301static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019302_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019303{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019304 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019306 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019307 return NULL;
19308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019309 void *_res = NULL;
19310 int _mark = p->mark;
19311 int _start_mark = p->mark;
19312 void **_children = PyMem_Malloc(sizeof(void *));
19313 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019314 p->error_indicator = 1;
19315 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019316 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019317 return NULL;
19318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019319 ssize_t _children_capacity = 1;
19320 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019321 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019322 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019323 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019324 return NULL;
19325 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019326 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 +030019327 NameDefaultPair* param_with_default_var;
19328 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019329 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019330 )
19331 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019332 _res = param_with_default_var;
19333 if (_n == _children_capacity) {
19334 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19336 if (!_new_children) {
19337 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019342 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019344 _children[_n++] = _res;
19345 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019347 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019348 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019351 if (_n == 0 || p->error_indicator) {
19352 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019353 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019354 return NULL;
19355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019356 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19357 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019358 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019359 p->error_indicator = 1;
19360 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019361 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019362 return NULL;
19363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019364 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19365 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019366 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019367 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019368 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019369}
19370
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019371// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019372static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019373_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019374{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019375 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019376 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019377 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019378 return NULL;
19379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019380 void *_res = NULL;
19381 int _mark = p->mark;
19382 int _start_mark = p->mark;
19383 void **_children = PyMem_Malloc(sizeof(void *));
19384 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019385 p->error_indicator = 1;
19386 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019387 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019388 return NULL;
19389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019390 ssize_t _children_capacity = 1;
19391 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019392 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019394 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019395 return NULL;
19396 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019397 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19398 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019399 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019400 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019401 )
19402 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019403 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019404 if (_n == _children_capacity) {
19405 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19407 if (!_new_children) {
19408 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019413 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019415 _children[_n++] = _res;
19416 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019418 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019419 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019422 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19423 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019424 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019425 p->error_indicator = 1;
19426 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019427 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019428 return NULL;
19429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019430 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19431 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019432 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019433 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019434 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019435}
19436
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019437// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019438static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019439_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019441 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019443 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019444 return NULL;
19445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019446 void *_res = NULL;
19447 int _mark = p->mark;
19448 int _start_mark = p->mark;
19449 void **_children = PyMem_Malloc(sizeof(void *));
19450 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019451 p->error_indicator = 1;
19452 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019453 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019454 return NULL;
19455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019456 ssize_t _children_capacity = 1;
19457 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019458 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019461 return NULL;
19462 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019463 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19464 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019465 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019466 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019467 )
19468 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019469 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019470 if (_n == _children_capacity) {
19471 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019472 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19473 if (!_new_children) {
19474 p->error_indicator = 1;
19475 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019476 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019477 return NULL;
19478 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019479 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019481 _children[_n++] = _res;
19482 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019484 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019485 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019488 if (_n == 0 || p->error_indicator) {
19489 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019490 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019491 return NULL;
19492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019493 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19494 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019495 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019496 p->error_indicator = 1;
19497 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019498 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019499 return NULL;
19500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019501 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19502 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019503 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019504 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019505 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019506}
19507
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019508// _loop0_66: param_maybe_default
19509static asdl_seq *
19510_loop0_66_rule(Parser *p)
19511{
19512 D(p->level++);
19513 if (p->error_indicator) {
19514 D(p->level--);
19515 return NULL;
19516 }
19517 void *_res = NULL;
19518 int _mark = p->mark;
19519 int _start_mark = p->mark;
19520 void **_children = PyMem_Malloc(sizeof(void *));
19521 if (!_children) {
19522 p->error_indicator = 1;
19523 PyErr_NoMemory();
19524 D(p->level--);
19525 return NULL;
19526 }
19527 ssize_t _children_capacity = 1;
19528 ssize_t _n = 0;
19529 { // param_maybe_default
19530 if (p->error_indicator) {
19531 D(p->level--);
19532 return NULL;
19533 }
19534 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19535 NameDefaultPair* param_maybe_default_var;
19536 while (
19537 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19538 )
19539 {
19540 _res = param_maybe_default_var;
19541 if (_n == _children_capacity) {
19542 _children_capacity *= 2;
19543 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19544 if (!_new_children) {
19545 p->error_indicator = 1;
19546 PyErr_NoMemory();
19547 D(p->level--);
19548 return NULL;
19549 }
19550 _children = _new_children;
19551 }
19552 _children[_n++] = _res;
19553 _mark = p->mark;
19554 }
19555 p->mark = _mark;
19556 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19558 }
19559 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19560 if (!_seq) {
19561 PyMem_Free(_children);
19562 p->error_indicator = 1;
19563 PyErr_NoMemory();
19564 D(p->level--);
19565 return NULL;
19566 }
19567 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19568 PyMem_Free(_children);
19569 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19570 D(p->level--);
19571 return _seq;
19572}
19573
19574// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019575static asdl_seq *
19576_loop1_67_rule(Parser *p)
19577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019578 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019580 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019581 return NULL;
19582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019583 void *_res = NULL;
19584 int _mark = p->mark;
19585 int _start_mark = p->mark;
19586 void **_children = PyMem_Malloc(sizeof(void *));
19587 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019588 p->error_indicator = 1;
19589 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019590 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019591 return NULL;
19592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019593 ssize_t _children_capacity = 1;
19594 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019595 { // param_maybe_default
19596 if (p->error_indicator) {
19597 D(p->level--);
19598 return NULL;
19599 }
19600 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19601 NameDefaultPair* param_maybe_default_var;
19602 while (
19603 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19604 )
19605 {
19606 _res = param_maybe_default_var;
19607 if (_n == _children_capacity) {
19608 _children_capacity *= 2;
19609 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19610 if (!_new_children) {
19611 p->error_indicator = 1;
19612 PyErr_NoMemory();
19613 D(p->level--);
19614 return NULL;
19615 }
19616 _children = _new_children;
19617 }
19618 _children[_n++] = _res;
19619 _mark = p->mark;
19620 }
19621 p->mark = _mark;
19622 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19624 }
19625 if (_n == 0 || p->error_indicator) {
19626 PyMem_Free(_children);
19627 D(p->level--);
19628 return NULL;
19629 }
19630 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19631 if (!_seq) {
19632 PyMem_Free(_children);
19633 p->error_indicator = 1;
19634 PyErr_NoMemory();
19635 D(p->level--);
19636 return NULL;
19637 }
19638 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19639 PyMem_Free(_children);
19640 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19641 D(p->level--);
19642 return _seq;
19643}
19644
19645// _loop1_68: ('@' named_expression NEWLINE)
19646static asdl_seq *
19647_loop1_68_rule(Parser *p)
19648{
19649 D(p->level++);
19650 if (p->error_indicator) {
19651 D(p->level--);
19652 return NULL;
19653 }
19654 void *_res = NULL;
19655 int _mark = p->mark;
19656 int _start_mark = p->mark;
19657 void **_children = PyMem_Malloc(sizeof(void *));
19658 if (!_children) {
19659 p->error_indicator = 1;
19660 PyErr_NoMemory();
19661 D(p->level--);
19662 return NULL;
19663 }
19664 ssize_t _children_capacity = 1;
19665 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019666 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019668 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019669 return NULL;
19670 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019671 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 +010019672 void *_tmp_142_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019673 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019674 (_tmp_142_var = _tmp_142_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019675 )
19676 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019677 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019678 if (_n == _children_capacity) {
19679 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19681 if (!_new_children) {
19682 p->error_indicator = 1;
19683 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019684 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019685 return NULL;
19686 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019687 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019689 _children[_n++] = _res;
19690 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019692 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019693 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019696 if (_n == 0 || p->error_indicator) {
19697 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019698 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019699 return NULL;
19700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019701 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19702 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019703 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019704 p->error_indicator = 1;
19705 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019706 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019707 return NULL;
19708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019709 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19710 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019711 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019712 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019713 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019714}
19715
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019716// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019717static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019718_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019719{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019720 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019722 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019723 return NULL;
19724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019725 void * _res = NULL;
19726 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019727 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019730 return NULL;
19731 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019732 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019733 Token * _literal;
19734 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019735 void *z;
19736 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019737 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019738 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019739 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019740 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019741 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019742 )
19743 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019744 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019745 _res = z;
19746 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019747 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019749 return NULL;
19750 }
19751 goto done;
19752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019753 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019754 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019757 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019758 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019759 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019760 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019761}
19762
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019763// _loop0_71: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019764static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019765_loop0_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019766{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019767 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019770 return NULL;
19771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019772 void *_res = NULL;
19773 int _mark = p->mark;
19774 int _start_mark = p->mark;
19775 void **_children = PyMem_Malloc(sizeof(void *));
19776 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019777 p->error_indicator = 1;
19778 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019780 return NULL;
19781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019782 ssize_t _children_capacity = 1;
19783 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019784 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019786 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019787 return NULL;
19788 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019789 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019790 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019791 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019792 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019793 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019794 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019795 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019796 )
19797 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019798 _res = elem;
19799 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019800 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019801 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019803 return NULL;
19804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019805 if (_n == _children_capacity) {
19806 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019807 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19808 if (!_new_children) {
19809 p->error_indicator = 1;
19810 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019812 return NULL;
19813 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019814 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019816 _children[_n++] = _res;
19817 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019819 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019820 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019823 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19824 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019825 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019826 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019831 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19832 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019833 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019834 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019835 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019836}
19837
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019838// _gather_70: star_expression _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019839static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019840_gather_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019841{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019842 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019845 return NULL;
19846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019847 asdl_seq * _res = NULL;
19848 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019849 { // star_expression _loop0_71
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019851 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019852 return NULL;
19853 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019854 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 +010019855 expr_ty elem;
19856 asdl_seq * seq;
19857 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019858 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019859 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019860 (seq = _loop0_71_rule(p)) // _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019861 )
19862 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019863 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 +010019864 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019865 goto done;
19866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019867 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019868 D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
19869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019871 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019872 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019873 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019874 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019875}
19876
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019877// _loop1_72: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019878static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019879_loop1_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019880{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019881 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019883 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019884 return NULL;
19885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019886 void *_res = NULL;
19887 int _mark = p->mark;
19888 int _start_mark = p->mark;
19889 void **_children = PyMem_Malloc(sizeof(void *));
19890 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019891 p->error_indicator = 1;
19892 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019893 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019894 return NULL;
19895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019896 ssize_t _children_capacity = 1;
19897 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019898 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019900 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019901 return NULL;
19902 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019903 D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019904 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019905 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019906 (_tmp_143_var = _tmp_143_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019907 )
19908 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019909 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019910 if (_n == _children_capacity) {
19911 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019912 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19913 if (!_new_children) {
19914 p->error_indicator = 1;
19915 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019916 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019917 return NULL;
19918 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019919 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019921 _children[_n++] = _res;
19922 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019924 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019925 D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019928 if (_n == 0 || p->error_indicator) {
19929 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019930 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019931 return NULL;
19932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019933 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19934 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019935 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019936 p->error_indicator = 1;
19937 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019939 return NULL;
19940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019941 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19942 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019943 _PyPegen_insert_memo(p, _start_mark, _loop1_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019944 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019945 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019946}
19947
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019948// _loop0_74: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019949static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019950_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019951{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019952 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019953 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019955 return NULL;
19956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019957 void *_res = NULL;
19958 int _mark = p->mark;
19959 int _start_mark = p->mark;
19960 void **_children = PyMem_Malloc(sizeof(void *));
19961 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019962 p->error_indicator = 1;
19963 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019964 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019965 return NULL;
19966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019967 ssize_t _children_capacity = 1;
19968 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019969 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019972 return NULL;
19973 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019974 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 +010019975 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019976 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019977 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019978 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019979 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019980 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019981 )
19982 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019983 _res = elem;
19984 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019985 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019986 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019987 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019988 return NULL;
19989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019990 if (_n == _children_capacity) {
19991 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019992 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19993 if (!_new_children) {
19994 p->error_indicator = 1;
19995 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019996 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019997 return NULL;
19998 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019999 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020001 _children[_n++] = _res;
20002 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020004 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020005 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020008 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20009 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020010 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020011 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020016 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20017 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020018 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020019 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020020 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020021}
20022
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020023// _gather_73: star_named_expression _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020024static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020025_gather_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020026{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020027 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020028 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020030 return NULL;
20031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020032 asdl_seq * _res = NULL;
20033 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020034 { // star_named_expression _loop0_74
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020036 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020037 return NULL;
20038 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020039 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 +010020040 expr_ty elem;
20041 asdl_seq * seq;
20042 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020043 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020044 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020045 (seq = _loop0_74_rule(p)) // _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020046 )
20047 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020048 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 +010020049 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020050 goto done;
20051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020052 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020053 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
20054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020056 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020057 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020058 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020059 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020060}
20061
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020062// _loop1_75: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020063static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020064_loop1_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020065{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020066 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020069 return NULL;
20070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020071 void *_res = NULL;
20072 int _mark = p->mark;
20073 int _start_mark = p->mark;
20074 void **_children = PyMem_Malloc(sizeof(void *));
20075 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020076 p->error_indicator = 1;
20077 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020079 return NULL;
20080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020081 ssize_t _children_capacity = 1;
20082 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020083 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020086 return NULL;
20087 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020088 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020089 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020090 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020091 (_tmp_144_var = _tmp_144_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020092 )
20093 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020094 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020095 if (_n == _children_capacity) {
20096 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020097 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20098 if (!_new_children) {
20099 p->error_indicator = 1;
20100 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020101 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020102 return NULL;
20103 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020104 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020106 _children[_n++] = _res;
20107 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020109 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020110 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020113 if (_n == 0 || p->error_indicator) {
20114 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020116 return NULL;
20117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020118 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20119 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020120 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020121 p->error_indicator = 1;
20122 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020124 return NULL;
20125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020126 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20127 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020128 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020129 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020130 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020131}
20132
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020133// _loop0_76: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020134static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020135_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020136{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020137 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020140 return NULL;
20141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020142 void *_res = NULL;
20143 int _mark = p->mark;
20144 int _start_mark = p->mark;
20145 void **_children = PyMem_Malloc(sizeof(void *));
20146 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020147 p->error_indicator = 1;
20148 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020150 return NULL;
20151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020152 ssize_t _children_capacity = 1;
20153 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020154 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020157 return NULL;
20158 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020159 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 -070020160 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020161 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020162 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020163 )
20164 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020165 _res = lambda_param_no_default_var;
20166 if (_n == _children_capacity) {
20167 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020168 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20169 if (!_new_children) {
20170 p->error_indicator = 1;
20171 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020172 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020173 return NULL;
20174 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020175 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020177 _children[_n++] = _res;
20178 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020180 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020181 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020184 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20185 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020186 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020187 p->error_indicator = 1;
20188 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020189 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020190 return NULL;
20191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020192 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20193 PyMem_Free(_children);
20194 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020195 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020196 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020197}
20198
Guido van Rossum3941d972020-05-01 09:42:03 -070020199// _loop0_77: lambda_param_with_default
20200static asdl_seq *
20201_loop0_77_rule(Parser *p)
20202{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020203 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020205 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020206 return NULL;
20207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020208 void *_res = NULL;
20209 int _mark = p->mark;
20210 int _start_mark = p->mark;
20211 void **_children = PyMem_Malloc(sizeof(void *));
20212 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020213 p->error_indicator = 1;
20214 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020215 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020216 return NULL;
20217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020218 ssize_t _children_capacity = 1;
20219 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020220 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020222 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020223 return NULL;
20224 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020225 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 -070020226 NameDefaultPair* lambda_param_with_default_var;
20227 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020228 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020229 )
20230 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020231 _res = lambda_param_with_default_var;
20232 if (_n == _children_capacity) {
20233 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020234 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20235 if (!_new_children) {
20236 p->error_indicator = 1;
20237 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020238 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020239 return NULL;
20240 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020241 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020243 _children[_n++] = _res;
20244 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020246 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020247 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
20248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020250 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20251 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020252 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020253 p->error_indicator = 1;
20254 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020255 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020256 return NULL;
20257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020258 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20259 PyMem_Free(_children);
20260 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020262 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020263}
20264
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020265// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020266static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020267_loop0_78_rule(Parser *p)
20268{
20269 D(p->level++);
20270 if (p->error_indicator) {
20271 D(p->level--);
20272 return NULL;
20273 }
20274 void *_res = NULL;
20275 int _mark = p->mark;
20276 int _start_mark = p->mark;
20277 void **_children = PyMem_Malloc(sizeof(void *));
20278 if (!_children) {
20279 p->error_indicator = 1;
20280 PyErr_NoMemory();
20281 D(p->level--);
20282 return NULL;
20283 }
20284 ssize_t _children_capacity = 1;
20285 ssize_t _n = 0;
20286 { // lambda_param_with_default
20287 if (p->error_indicator) {
20288 D(p->level--);
20289 return NULL;
20290 }
20291 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20292 NameDefaultPair* lambda_param_with_default_var;
20293 while (
20294 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20295 )
20296 {
20297 _res = lambda_param_with_default_var;
20298 if (_n == _children_capacity) {
20299 _children_capacity *= 2;
20300 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20301 if (!_new_children) {
20302 p->error_indicator = 1;
20303 PyErr_NoMemory();
20304 D(p->level--);
20305 return NULL;
20306 }
20307 _children = _new_children;
20308 }
20309 _children[_n++] = _res;
20310 _mark = p->mark;
20311 }
20312 p->mark = _mark;
20313 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20315 }
20316 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20317 if (!_seq) {
20318 PyMem_Free(_children);
20319 p->error_indicator = 1;
20320 PyErr_NoMemory();
20321 D(p->level--);
20322 return NULL;
20323 }
20324 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20325 PyMem_Free(_children);
20326 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20327 D(p->level--);
20328 return _seq;
20329}
20330
20331// _loop1_79: lambda_param_no_default
20332static asdl_seq *
20333_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020334{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020335 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020337 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020338 return NULL;
20339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020340 void *_res = NULL;
20341 int _mark = p->mark;
20342 int _start_mark = p->mark;
20343 void **_children = PyMem_Malloc(sizeof(void *));
20344 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020345 p->error_indicator = 1;
20346 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020347 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020348 return NULL;
20349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020350 ssize_t _children_capacity = 1;
20351 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020352 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020353 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020354 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020355 return NULL;
20356 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020357 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 -070020358 arg_ty lambda_param_no_default_var;
20359 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020360 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020361 )
20362 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020363 _res = lambda_param_no_default_var;
20364 if (_n == _children_capacity) {
20365 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020366 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20367 if (!_new_children) {
20368 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020373 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020375 _children[_n++] = _res;
20376 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020378 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020379 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020382 if (_n == 0 || p->error_indicator) {
20383 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020384 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020385 return NULL;
20386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020387 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20388 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020389 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020390 p->error_indicator = 1;
20391 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020392 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020393 return NULL;
20394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020395 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20396 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020397 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020398 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020399 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020400}
20401
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020402// _loop0_80: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020403static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020404_loop0_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020405{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020406 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020408 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020409 return NULL;
20410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020411 void *_res = NULL;
20412 int _mark = p->mark;
20413 int _start_mark = p->mark;
20414 void **_children = PyMem_Malloc(sizeof(void *));
20415 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020416 p->error_indicator = 1;
20417 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020418 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020419 return NULL;
20420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020421 ssize_t _children_capacity = 1;
20422 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020423 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020424 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020425 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020426 return NULL;
20427 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020428 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 -070020429 NameDefaultPair* lambda_param_with_default_var;
20430 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020431 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020432 )
20433 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020434 _res = lambda_param_with_default_var;
20435 if (_n == _children_capacity) {
20436 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020437 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20438 if (!_new_children) {
20439 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020444 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020446 _children[_n++] = _res;
20447 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020449 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020450 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020453 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20454 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020455 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020456 p->error_indicator = 1;
20457 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020458 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020459 return NULL;
20460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020461 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20462 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020463 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020464 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020465 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020466}
20467
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020468// _loop1_81: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020469static asdl_seq *
20470_loop1_81_rule(Parser *p)
20471{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020472 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020473 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020474 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020475 return NULL;
20476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020477 void *_res = NULL;
20478 int _mark = p->mark;
20479 int _start_mark = p->mark;
20480 void **_children = PyMem_Malloc(sizeof(void *));
20481 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020482 p->error_indicator = 1;
20483 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020484 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020485 return NULL;
20486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020487 ssize_t _children_capacity = 1;
20488 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020489 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020490 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020491 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020492 return NULL;
20493 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020494 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20495 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020496 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020497 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020498 )
20499 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020500 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020501 if (_n == _children_capacity) {
20502 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020503 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20504 if (!_new_children) {
20505 p->error_indicator = 1;
20506 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020507 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020508 return NULL;
20509 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020510 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020512 _children[_n++] = _res;
20513 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020515 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020516 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020519 if (_n == 0 || p->error_indicator) {
20520 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020521 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020522 return NULL;
20523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020524 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20525 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020526 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020527 p->error_indicator = 1;
20528 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020529 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020530 return NULL;
20531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020532 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20533 PyMem_Free(_children);
20534 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020535 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020536 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020537}
20538
20539// _loop1_82: lambda_param_no_default
20540static asdl_seq *
20541_loop1_82_rule(Parser *p)
20542{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020543 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020545 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020546 return NULL;
20547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020548 void *_res = NULL;
20549 int _mark = p->mark;
20550 int _start_mark = p->mark;
20551 void **_children = PyMem_Malloc(sizeof(void *));
20552 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020553 p->error_indicator = 1;
20554 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020555 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020556 return NULL;
20557 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020558 ssize_t _children_capacity = 1;
20559 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020560 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020561 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020562 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020563 return NULL;
20564 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020565 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 -070020566 arg_ty lambda_param_no_default_var;
20567 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020568 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020569 )
20570 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020571 _res = lambda_param_no_default_var;
20572 if (_n == _children_capacity) {
20573 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020574 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20575 if (!_new_children) {
20576 p->error_indicator = 1;
20577 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020578 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020579 return NULL;
20580 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020581 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020583 _children[_n++] = _res;
20584 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020586 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020587 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020590 if (_n == 0 || p->error_indicator) {
20591 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020592 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020593 return NULL;
20594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020595 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20596 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020597 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020598 p->error_indicator = 1;
20599 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020600 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020601 return NULL;
20602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020603 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20604 PyMem_Free(_children);
20605 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020606 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020607 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020608}
20609
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020610// _loop1_83: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020611static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020612_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020613{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020614 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020615 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020616 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020617 return NULL;
20618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020619 void *_res = NULL;
20620 int _mark = p->mark;
20621 int _start_mark = p->mark;
20622 void **_children = PyMem_Malloc(sizeof(void *));
20623 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020624 p->error_indicator = 1;
20625 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020626 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020627 return NULL;
20628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020629 ssize_t _children_capacity = 1;
20630 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020631 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020632 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020633 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020634 return NULL;
20635 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020636 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 -070020637 arg_ty lambda_param_no_default_var;
20638 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020639 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020640 )
20641 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020642 _res = lambda_param_no_default_var;
20643 if (_n == _children_capacity) {
20644 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020645 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20646 if (!_new_children) {
20647 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020652 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020654 _children[_n++] = _res;
20655 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020657 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020658 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020661 if (_n == 0 || p->error_indicator) {
20662 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020663 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020664 return NULL;
20665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020666 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20667 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020668 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020669 p->error_indicator = 1;
20670 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020671 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020672 return NULL;
20673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020674 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20675 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020676 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020677 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020678 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020679}
20680
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020681// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020682static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020683_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020684{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020685 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020686 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020687 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020688 return NULL;
20689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020690 void *_res = NULL;
20691 int _mark = p->mark;
20692 int _start_mark = p->mark;
20693 void **_children = PyMem_Malloc(sizeof(void *));
20694 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020695 p->error_indicator = 1;
20696 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020697 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020698 return NULL;
20699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020700 ssize_t _children_capacity = 1;
20701 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020702 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020704 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020705 return NULL;
20706 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020707 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 -070020708 arg_ty lambda_param_no_default_var;
20709 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020710 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020711 )
20712 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020713 _res = lambda_param_no_default_var;
20714 if (_n == _children_capacity) {
20715 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020716 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20717 if (!_new_children) {
20718 p->error_indicator = 1;
20719 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020720 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020721 return NULL;
20722 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020723 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020725 _children[_n++] = _res;
20726 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020728 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020729 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020732 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20733 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020734 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020735 p->error_indicator = 1;
20736 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020737 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020738 return NULL;
20739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020740 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20741 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020742 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020743 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020744 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020745}
20746
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020747// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020748static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020749_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020750{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020751 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020752 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020753 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020754 return NULL;
20755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020756 void *_res = NULL;
20757 int _mark = p->mark;
20758 int _start_mark = p->mark;
20759 void **_children = PyMem_Malloc(sizeof(void *));
20760 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020761 p->error_indicator = 1;
20762 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020763 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020764 return NULL;
20765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020766 ssize_t _children_capacity = 1;
20767 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020768 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020771 return NULL;
20772 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020773 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 -070020774 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020775 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020776 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020777 )
20778 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020779 _res = lambda_param_with_default_var;
20780 if (_n == _children_capacity) {
20781 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020782 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20783 if (!_new_children) {
20784 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020789 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020791 _children[_n++] = _res;
20792 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020794 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020795 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020798 if (_n == 0 || p->error_indicator) {
20799 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020801 return NULL;
20802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020803 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20804 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020805 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020806 p->error_indicator = 1;
20807 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020809 return NULL;
20810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020811 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20812 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020813 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020815 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020816}
20817
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020818// _loop0_86: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020819static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020820_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020821{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020822 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020825 return NULL;
20826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020827 void *_res = NULL;
20828 int _mark = p->mark;
20829 int _start_mark = p->mark;
20830 void **_children = PyMem_Malloc(sizeof(void *));
20831 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020832 p->error_indicator = 1;
20833 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020834 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020835 return NULL;
20836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020837 ssize_t _children_capacity = 1;
20838 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020839 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020841 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020842 return NULL;
20843 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020844 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20845 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020846 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020847 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020848 )
20849 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020850 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020851 if (_n == _children_capacity) {
20852 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20854 if (!_new_children) {
20855 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020860 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020862 _children[_n++] = _res;
20863 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020865 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020866 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
20867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020869 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20870 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020871 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020872 p->error_indicator = 1;
20873 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020875 return NULL;
20876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020877 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20878 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020879 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020880 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020881 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020882}
20883
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020884// _loop1_87: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020885static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020886_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020887{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020888 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020891 return NULL;
20892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020893 void *_res = NULL;
20894 int _mark = p->mark;
20895 int _start_mark = p->mark;
20896 void **_children = PyMem_Malloc(sizeof(void *));
20897 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020898 p->error_indicator = 1;
20899 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020901 return NULL;
20902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020903 ssize_t _children_capacity = 1;
20904 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020905 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020907 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020908 return NULL;
20909 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020910 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20911 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020912 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020913 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020914 )
20915 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020916 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020917 if (_n == _children_capacity) {
20918 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020919 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20920 if (!_new_children) {
20921 p->error_indicator = 1;
20922 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020924 return NULL;
20925 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020926 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020928 _children[_n++] = _res;
20929 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020931 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020932 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
20933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020935 if (_n == 0 || p->error_indicator) {
20936 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020937 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020938 return NULL;
20939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020940 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20941 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020942 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020943 p->error_indicator = 1;
20944 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020945 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020946 return NULL;
20947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020948 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20949 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020950 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020952 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020953}
20954
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020955// _loop0_88: lambda_param_maybe_default
20956static asdl_seq *
20957_loop0_88_rule(Parser *p)
20958{
20959 D(p->level++);
20960 if (p->error_indicator) {
20961 D(p->level--);
20962 return NULL;
20963 }
20964 void *_res = NULL;
20965 int _mark = p->mark;
20966 int _start_mark = p->mark;
20967 void **_children = PyMem_Malloc(sizeof(void *));
20968 if (!_children) {
20969 p->error_indicator = 1;
20970 PyErr_NoMemory();
20971 D(p->level--);
20972 return NULL;
20973 }
20974 ssize_t _children_capacity = 1;
20975 ssize_t _n = 0;
20976 { // lambda_param_maybe_default
20977 if (p->error_indicator) {
20978 D(p->level--);
20979 return NULL;
20980 }
20981 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20982 NameDefaultPair* lambda_param_maybe_default_var;
20983 while (
20984 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20985 )
20986 {
20987 _res = lambda_param_maybe_default_var;
20988 if (_n == _children_capacity) {
20989 _children_capacity *= 2;
20990 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20991 if (!_new_children) {
20992 p->error_indicator = 1;
20993 PyErr_NoMemory();
20994 D(p->level--);
20995 return NULL;
20996 }
20997 _children = _new_children;
20998 }
20999 _children[_n++] = _res;
21000 _mark = p->mark;
21001 }
21002 p->mark = _mark;
21003 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
21004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
21005 }
21006 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21007 if (!_seq) {
21008 PyMem_Free(_children);
21009 p->error_indicator = 1;
21010 PyErr_NoMemory();
21011 D(p->level--);
21012 return NULL;
21013 }
21014 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21015 PyMem_Free(_children);
21016 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
21017 D(p->level--);
21018 return _seq;
21019}
21020
21021// _loop1_89: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021022static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021023_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021024{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021025 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021026 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021028 return NULL;
21029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021030 void *_res = NULL;
21031 int _mark = p->mark;
21032 int _start_mark = p->mark;
21033 void **_children = PyMem_Malloc(sizeof(void *));
21034 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021035 p->error_indicator = 1;
21036 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021038 return NULL;
21039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021040 ssize_t _children_capacity = 1;
21041 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021042 { // lambda_param_maybe_default
21043 if (p->error_indicator) {
21044 D(p->level--);
21045 return NULL;
21046 }
21047 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21048 NameDefaultPair* lambda_param_maybe_default_var;
21049 while (
21050 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
21051 )
21052 {
21053 _res = lambda_param_maybe_default_var;
21054 if (_n == _children_capacity) {
21055 _children_capacity *= 2;
21056 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21057 if (!_new_children) {
21058 p->error_indicator = 1;
21059 PyErr_NoMemory();
21060 D(p->level--);
21061 return NULL;
21062 }
21063 _children = _new_children;
21064 }
21065 _children[_n++] = _res;
21066 _mark = p->mark;
21067 }
21068 p->mark = _mark;
21069 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
21070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
21071 }
21072 if (_n == 0 || p->error_indicator) {
21073 PyMem_Free(_children);
21074 D(p->level--);
21075 return NULL;
21076 }
21077 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21078 if (!_seq) {
21079 PyMem_Free(_children);
21080 p->error_indicator = 1;
21081 PyErr_NoMemory();
21082 D(p->level--);
21083 return NULL;
21084 }
21085 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21086 PyMem_Free(_children);
21087 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
21088 D(p->level--);
21089 return _seq;
21090}
21091
21092// _loop1_90: ('or' conjunction)
21093static asdl_seq *
21094_loop1_90_rule(Parser *p)
21095{
21096 D(p->level++);
21097 if (p->error_indicator) {
21098 D(p->level--);
21099 return NULL;
21100 }
21101 void *_res = NULL;
21102 int _mark = p->mark;
21103 int _start_mark = p->mark;
21104 void **_children = PyMem_Malloc(sizeof(void *));
21105 if (!_children) {
21106 p->error_indicator = 1;
21107 PyErr_NoMemory();
21108 D(p->level--);
21109 return NULL;
21110 }
21111 ssize_t _children_capacity = 1;
21112 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021113 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021116 return NULL;
21117 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021118 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021119 void *_tmp_145_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021120 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021121 (_tmp_145_var = _tmp_145_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021122 )
21123 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021124 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021125 if (_n == _children_capacity) {
21126 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021127 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21128 if (!_new_children) {
21129 p->error_indicator = 1;
21130 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021132 return NULL;
21133 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021134 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021136 _children[_n++] = _res;
21137 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021139 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021140 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021143 if (_n == 0 || p->error_indicator) {
21144 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021145 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021146 return NULL;
21147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021148 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21149 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021150 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021151 p->error_indicator = 1;
21152 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021153 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021154 return NULL;
21155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021156 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21157 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021158 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021159 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021160 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021161}
21162
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021163// _loop1_91: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021164static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021165_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021166{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021167 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021169 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021170 return NULL;
21171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021172 void *_res = NULL;
21173 int _mark = p->mark;
21174 int _start_mark = p->mark;
21175 void **_children = PyMem_Malloc(sizeof(void *));
21176 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021177 p->error_indicator = 1;
21178 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021179 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021180 return NULL;
21181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021182 ssize_t _children_capacity = 1;
21183 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021184 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021186 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021187 return NULL;
21188 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021189 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021190 void *_tmp_146_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021191 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021192 (_tmp_146_var = _tmp_146_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021193 )
21194 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021195 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021196 if (_n == _children_capacity) {
21197 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021198 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21199 if (!_new_children) {
21200 p->error_indicator = 1;
21201 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021202 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021203 return NULL;
21204 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021205 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021207 _children[_n++] = _res;
21208 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021210 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021211 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021214 if (_n == 0 || p->error_indicator) {
21215 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021217 return NULL;
21218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021219 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21220 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021221 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021222 p->error_indicator = 1;
21223 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021225 return NULL;
21226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021227 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21228 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021229 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021230 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021231 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021232}
21233
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021234// _loop1_92: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021235static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021236_loop1_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021237{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021238 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021240 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021241 return NULL;
21242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021243 void *_res = NULL;
21244 int _mark = p->mark;
21245 int _start_mark = p->mark;
21246 void **_children = PyMem_Malloc(sizeof(void *));
21247 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021248 p->error_indicator = 1;
21249 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021251 return NULL;
21252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021253 ssize_t _children_capacity = 1;
21254 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021255 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021258 return NULL;
21259 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021260 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 +010021261 CmpopExprPair* compare_op_bitwise_or_pair_var;
21262 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021263 (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 +010021264 )
21265 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021266 _res = compare_op_bitwise_or_pair_var;
21267 if (_n == _children_capacity) {
21268 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21270 if (!_new_children) {
21271 p->error_indicator = 1;
21272 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021274 return NULL;
21275 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021276 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021278 _children[_n++] = _res;
21279 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021281 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021282 D(fprintf(stderr, "%*c%s _loop1_92[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021285 if (_n == 0 || p->error_indicator) {
21286 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021288 return NULL;
21289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021290 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21291 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021292 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021293 p->error_indicator = 1;
21294 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021295 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021296 return NULL;
21297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021298 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21299 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021300 _PyPegen_insert_memo(p, _start_mark, _loop1_92_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021301 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021302 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021303}
21304
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021305// _tmp_93: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021306static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021307_tmp_93_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021308{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021309 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021310 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021311 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021312 return NULL;
21313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021314 void * _res = NULL;
21315 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021316 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021317 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021318 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021319 return NULL;
21320 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021321 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021322 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021323 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021324 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021325 )
21326 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021327 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoddcd57e2020-10-31 00:40:42 +000021328 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021331 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021332 return NULL;
21333 }
21334 goto done;
21335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021336 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021337 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021340 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021341 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021342 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021343 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021344}
21345
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021346// _loop0_95: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021347static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021348_loop0_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021349{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021350 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021353 return NULL;
21354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021355 void *_res = NULL;
21356 int _mark = p->mark;
21357 int _start_mark = p->mark;
21358 void **_children = PyMem_Malloc(sizeof(void *));
21359 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021360 p->error_indicator = 1;
21361 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021363 return NULL;
21364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021365 ssize_t _children_capacity = 1;
21366 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021367 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021370 return NULL;
21371 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021372 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021373 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021374 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021375 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021376 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021377 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021378 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021379 )
21380 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021381 _res = elem;
21382 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021383 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021384 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021386 return NULL;
21387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021388 if (_n == _children_capacity) {
21389 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21391 if (!_new_children) {
21392 p->error_indicator = 1;
21393 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021395 return NULL;
21396 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021397 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021399 _children[_n++] = _res;
21400 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021402 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021403 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021406 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21407 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021408 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021409 p->error_indicator = 1;
21410 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021411 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021412 return NULL;
21413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021414 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21415 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021416 _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021417 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021418 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021419}
21420
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021421// _gather_94: slice _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021422static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021423_gather_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021424{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021425 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021428 return NULL;
21429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021430 asdl_seq * _res = NULL;
21431 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021432 { // slice _loop0_95
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021434 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021435 return NULL;
21436 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021437 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 +010021438 expr_ty elem;
21439 asdl_seq * seq;
21440 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021441 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021442 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021443 (seq = _loop0_95_rule(p)) // _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021444 )
21445 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021446 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 +010021447 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021448 goto done;
21449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021450 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021451 D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ',
21452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021454 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021455 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021456 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021457 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021458}
21459
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021460// _tmp_96: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021461static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021462_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021463{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021464 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021466 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021467 return NULL;
21468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021469 void * _res = NULL;
21470 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021471 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021473 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021474 return NULL;
21475 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021476 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021477 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021478 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021479 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021480 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021481 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021482 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021483 )
21484 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021485 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021486 _res = d;
21487 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021488 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021489 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021490 return NULL;
21491 }
21492 goto done;
21493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021494 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021495 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021498 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021499 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021500 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021501 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021502}
21503
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021504// _tmp_97: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021505static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021506_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021507{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021508 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021510 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021511 return NULL;
21512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021513 void * _res = NULL;
21514 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021515 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021516 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021517 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021518 return NULL;
21519 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021520 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021521 expr_ty tuple_var;
21522 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021523 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021524 )
21525 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021526 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021527 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021528 goto done;
21529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021530 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021531 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021533 }
21534 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021536 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021537 return NULL;
21538 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021539 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021540 expr_ty group_var;
21541 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021542 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021543 )
21544 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021545 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021546 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021547 goto done;
21548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021549 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021550 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021552 }
21553 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021556 return NULL;
21557 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021558 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021559 expr_ty genexp_var;
21560 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021561 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021562 )
21563 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021564 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021565 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021566 goto done;
21567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021568 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021569 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021572 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021573 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021574 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021575 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021576}
21577
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021578// _tmp_98: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021579static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021580_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021581{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021582 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021584 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021585 return NULL;
21586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021587 void * _res = NULL;
21588 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021589 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021591 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021592 return NULL;
21593 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021594 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021595 expr_ty list_var;
21596 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021597 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021598 )
21599 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021600 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021601 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021602 goto done;
21603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021604 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021605 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021607 }
21608 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021610 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021611 return NULL;
21612 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021613 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021614 expr_ty listcomp_var;
21615 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021616 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021617 )
21618 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021619 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021620 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021621 goto done;
21622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021623 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021624 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021627 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021628 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021629 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021630 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021631}
21632
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021633// _tmp_99: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021634static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021635_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021636{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021637 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021640 return NULL;
21641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021642 void * _res = NULL;
21643 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021644 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021646 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021647 return NULL;
21648 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021649 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021650 expr_ty dict_var;
21651 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021652 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021653 )
21654 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021655 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021656 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021657 goto done;
21658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021659 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021660 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021662 }
21663 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021665 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021666 return NULL;
21667 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021668 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021669 expr_ty set_var;
21670 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021671 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021672 )
21673 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021674 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021675 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021676 goto done;
21677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021678 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021679 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021681 }
21682 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021683 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021684 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021685 return NULL;
21686 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021687 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021688 expr_ty dictcomp_var;
21689 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021690 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021691 )
21692 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021693 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021694 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021695 goto done;
21696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021697 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021698 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021700 }
21701 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021702 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021703 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021704 return NULL;
21705 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021706 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021707 expr_ty setcomp_var;
21708 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021709 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021710 )
21711 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021712 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021713 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021714 goto done;
21715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021716 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021717 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021720 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021721 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021722 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021723 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021724}
21725
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021726// _loop1_100: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021727static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021728_loop1_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021729{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021730 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021731 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021732 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021733 return NULL;
21734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021735 void *_res = NULL;
21736 int _mark = p->mark;
21737 int _start_mark = p->mark;
21738 void **_children = PyMem_Malloc(sizeof(void *));
21739 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021740 p->error_indicator = 1;
21741 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021743 return NULL;
21744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021745 ssize_t _children_capacity = 1;
21746 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021747 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021748 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021749 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021750 return NULL;
21751 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021752 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021753 expr_ty string_var;
21754 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021755 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021756 )
21757 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021758 _res = string_var;
21759 if (_n == _children_capacity) {
21760 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021761 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21762 if (!_new_children) {
21763 p->error_indicator = 1;
21764 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021766 return NULL;
21767 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021768 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021770 _children[_n++] = _res;
21771 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021773 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021774 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021777 if (_n == 0 || p->error_indicator) {
21778 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021780 return NULL;
21781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021782 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21783 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021784 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021785 p->error_indicator = 1;
21786 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021787 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021788 return NULL;
21789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021790 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21791 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021792 _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021793 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021794 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021795}
21796
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021797// _tmp_101: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021798static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021799_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021800{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021801 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021802 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021804 return NULL;
21805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021806 void * _res = NULL;
21807 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021808 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021809 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021810 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021811 return NULL;
21812 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021813 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 +010021814 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021815 expr_ty y;
21816 void *z;
21817 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021818 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021819 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021820 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021821 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021822 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021823 )
21824 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021825 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 +010021826 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21827 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021828 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021829 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021830 return NULL;
21831 }
21832 goto done;
21833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021834 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021835 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021838 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021839 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021840 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021841 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021842}
21843
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021844// _tmp_102: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021845static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021846_tmp_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021847{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021848 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021849 if (p->error_indicator) {
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 void * _res = NULL;
21854 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021855 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021856 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021857 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021858 return NULL;
21859 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021860 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021861 expr_ty yield_expr_var;
21862 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021863 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021864 )
21865 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021866 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 +010021867 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021868 goto done;
21869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021870 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021871 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021873 }
21874 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021876 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021877 return NULL;
21878 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021879 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021880 expr_ty named_expression_var;
21881 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021882 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021883 )
21884 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021885 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 +010021886 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021887 goto done;
21888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021889 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021890 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021893 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021894 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021895 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021896 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021897}
21898
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021899// _loop0_104: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021900static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021901_loop0_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021902{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021903 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021906 return NULL;
21907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021908 void *_res = NULL;
21909 int _mark = p->mark;
21910 int _start_mark = p->mark;
21911 void **_children = PyMem_Malloc(sizeof(void *));
21912 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021913 p->error_indicator = 1;
21914 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021915 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021916 return NULL;
21917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021918 ssize_t _children_capacity = 1;
21919 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021920 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021922 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021923 return NULL;
21924 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021925 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 +010021926 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021927 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021928 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021929 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021930 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021931 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021932 )
21933 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021934 _res = elem;
21935 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021936 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021937 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021939 return NULL;
21940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021941 if (_n == _children_capacity) {
21942 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021943 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21944 if (!_new_children) {
21945 p->error_indicator = 1;
21946 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021947 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021948 return NULL;
21949 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021950 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021952 _children[_n++] = _res;
21953 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021955 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021956 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021959 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21960 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021961 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021962 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021967 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21968 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021969 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021970 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021971 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021972}
21973
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021974// _gather_103: double_starred_kvpair _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021975static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021976_gather_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021977{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021978 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021981 return NULL;
21982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021983 asdl_seq * _res = NULL;
21984 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021985 { // double_starred_kvpair _loop0_104
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021986 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021987 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021988 return NULL;
21989 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021990 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 +010021991 KeyValuePair* elem;
21992 asdl_seq * seq;
21993 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021994 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021995 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021996 (seq = _loop0_104_rule(p)) // _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021997 )
21998 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021999 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 +010022000 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022001 goto done;
22002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022003 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022004 D(fprintf(stderr, "%*c%s _gather_103[%d-%d]: %s failed!\n", p->level, ' ',
22005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022007 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022008 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022009 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022010 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022011}
22012
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022013// _loop1_105: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022014static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022015_loop1_105_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022016{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022017 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022018 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022020 return NULL;
22021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022022 void *_res = NULL;
22023 int _mark = p->mark;
22024 int _start_mark = p->mark;
22025 void **_children = PyMem_Malloc(sizeof(void *));
22026 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022027 p->error_indicator = 1;
22028 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022030 return NULL;
22031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022032 ssize_t _children_capacity = 1;
22033 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022034 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022036 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022037 return NULL;
22038 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022039 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 +030022040 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022041 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010022042 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022043 )
22044 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022045 _res = for_if_clause_var;
22046 if (_n == _children_capacity) {
22047 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022048 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22049 if (!_new_children) {
22050 p->error_indicator = 1;
22051 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022053 return NULL;
22054 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022055 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022057 _children[_n++] = _res;
22058 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022060 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022061 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022064 if (_n == 0 || p->error_indicator) {
22065 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022067 return NULL;
22068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022069 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22070 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022071 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022072 p->error_indicator = 1;
22073 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022075 return NULL;
22076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022077 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22078 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022079 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022080 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022081 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010022082}
22083
Guido van Rossum3941d972020-05-01 09:42:03 -070022084// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070022085static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022086_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022087{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022088 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022090 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022091 return NULL;
22092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022093 void *_res = NULL;
22094 int _mark = p->mark;
22095 int _start_mark = p->mark;
22096 void **_children = PyMem_Malloc(sizeof(void *));
22097 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022098 p->error_indicator = 1;
22099 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022100 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022101 return NULL;
22102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022103 ssize_t _children_capacity = 1;
22104 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022105 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022108 return NULL;
22109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022110 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022111 void *_tmp_147_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022112 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022113 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070022114 )
22115 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022116 _res = _tmp_147_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022117 if (_n == _children_capacity) {
22118 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022119 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22120 if (!_new_children) {
22121 p->error_indicator = 1;
22122 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022123 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022124 return NULL;
22125 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022126 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022128 _children[_n++] = _res;
22129 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022131 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022132 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
22133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022135 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22136 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022137 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022138 p->error_indicator = 1;
22139 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022140 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022141 return NULL;
22142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022143 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22144 PyMem_Free(_children);
22145 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022146 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022147 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022148}
22149
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022150// _loop0_107: ('if' disjunction)
22151static asdl_seq *
22152_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022153{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022154 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022156 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022157 return NULL;
22158 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022159 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022160 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022161 int _start_mark = p->mark;
22162 void **_children = PyMem_Malloc(sizeof(void *));
22163 if (!_children) {
22164 p->error_indicator = 1;
22165 PyErr_NoMemory();
22166 D(p->level--);
22167 return NULL;
22168 }
22169 ssize_t _children_capacity = 1;
22170 ssize_t _n = 0;
22171 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022173 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022174 return NULL;
22175 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022176 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022177 void *_tmp_148_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022178 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022179 (_tmp_148_var = _tmp_148_rule(p)) // 'if' disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022180 )
22181 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022182 _res = _tmp_148_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022183 if (_n == _children_capacity) {
22184 _children_capacity *= 2;
22185 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22186 if (!_new_children) {
22187 p->error_indicator = 1;
22188 PyErr_NoMemory();
22189 D(p->level--);
22190 return NULL;
22191 }
22192 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022193 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022194 _children[_n++] = _res;
22195 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022197 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022198 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
22199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022200 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022201 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22202 if (!_seq) {
22203 PyMem_Free(_children);
22204 p->error_indicator = 1;
22205 PyErr_NoMemory();
22206 D(p->level--);
22207 return NULL;
22208 }
22209 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22210 PyMem_Free(_children);
22211 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022212 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022213 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022214}
22215
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022216// _loop0_109: ',' (starred_expression | named_expression !'=')
Guido van Rossum3941d972020-05-01 09:42:03 -070022217static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022218_loop0_109_rule(Parser *p)
22219{
22220 D(p->level++);
22221 if (p->error_indicator) {
22222 D(p->level--);
22223 return NULL;
22224 }
22225 void *_res = NULL;
22226 int _mark = p->mark;
22227 int _start_mark = p->mark;
22228 void **_children = PyMem_Malloc(sizeof(void *));
22229 if (!_children) {
22230 p->error_indicator = 1;
22231 PyErr_NoMemory();
22232 D(p->level--);
22233 return NULL;
22234 }
22235 ssize_t _children_capacity = 1;
22236 ssize_t _n = 0;
22237 { // ',' (starred_expression | named_expression !'=')
22238 if (p->error_indicator) {
22239 D(p->level--);
22240 return NULL;
22241 }
22242 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22243 Token * _literal;
22244 void *elem;
22245 while (
22246 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22247 &&
22248 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
22249 )
22250 {
22251 _res = elem;
22252 if (_res == NULL && PyErr_Occurred()) {
22253 p->error_indicator = 1;
22254 PyMem_Free(_children);
22255 D(p->level--);
22256 return NULL;
22257 }
22258 if (_n == _children_capacity) {
22259 _children_capacity *= 2;
22260 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22261 if (!_new_children) {
22262 p->error_indicator = 1;
22263 PyErr_NoMemory();
22264 D(p->level--);
22265 return NULL;
22266 }
22267 _children = _new_children;
22268 }
22269 _children[_n++] = _res;
22270 _mark = p->mark;
22271 }
22272 p->mark = _mark;
22273 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
22274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22275 }
22276 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22277 if (!_seq) {
22278 PyMem_Free(_children);
22279 p->error_indicator = 1;
22280 PyErr_NoMemory();
22281 D(p->level--);
22282 return NULL;
22283 }
22284 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22285 PyMem_Free(_children);
22286 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
22287 D(p->level--);
22288 return _seq;
22289}
22290
22291// _gather_108: (starred_expression | named_expression !'=') _loop0_109
22292static asdl_seq *
22293_gather_108_rule(Parser *p)
22294{
22295 D(p->level++);
22296 if (p->error_indicator) {
22297 D(p->level--);
22298 return NULL;
22299 }
22300 asdl_seq * _res = NULL;
22301 int _mark = p->mark;
22302 { // (starred_expression | named_expression !'=') _loop0_109
22303 if (p->error_indicator) {
22304 D(p->level--);
22305 return NULL;
22306 }
22307 D(fprintf(stderr, "%*c> _gather_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22308 void *elem;
22309 asdl_seq * seq;
22310 if (
22311 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
22312 &&
22313 (seq = _loop0_109_rule(p)) // _loop0_109
22314 )
22315 {
22316 D(fprintf(stderr, "%*c+ _gather_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22317 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22318 goto done;
22319 }
22320 p->mark = _mark;
22321 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
22322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22323 }
22324 _res = NULL;
22325 done:
22326 D(p->level--);
22327 return _res;
22328}
22329
22330// _tmp_110: ',' kwargs
22331static void *
22332_tmp_110_rule(Parser *p)
22333{
22334 D(p->level++);
22335 if (p->error_indicator) {
22336 D(p->level--);
22337 return NULL;
22338 }
22339 void * _res = NULL;
22340 int _mark = p->mark;
22341 { // ',' kwargs
22342 if (p->error_indicator) {
22343 D(p->level--);
22344 return NULL;
22345 }
22346 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
22347 Token * _literal;
22348 asdl_seq* k;
22349 if (
22350 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22351 &&
22352 (k = kwargs_rule(p)) // kwargs
22353 )
22354 {
22355 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
22356 _res = k;
22357 if (_res == NULL && PyErr_Occurred()) {
22358 p->error_indicator = 1;
22359 D(p->level--);
22360 return NULL;
22361 }
22362 goto done;
22363 }
22364 p->mark = _mark;
22365 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
22366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22367 }
22368 _res = NULL;
22369 done:
22370 D(p->level--);
22371 return _res;
22372}
22373
22374// _loop0_112: ',' kwarg_or_starred
22375static asdl_seq *
22376_loop0_112_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022377{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022378 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022380 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022381 return NULL;
22382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022383 void *_res = NULL;
22384 int _mark = p->mark;
22385 int _start_mark = p->mark;
22386 void **_children = PyMem_Malloc(sizeof(void *));
22387 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022388 p->error_indicator = 1;
22389 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022390 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022391 return NULL;
22392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022393 ssize_t _children_capacity = 1;
22394 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022395 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022396 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022397 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022398 return NULL;
22399 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022400 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 +010022401 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022402 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022403 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022404 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022405 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022406 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022407 )
22408 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022409 _res = elem;
22410 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022411 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022412 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022413 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022414 return NULL;
22415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022416 if (_n == _children_capacity) {
22417 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022418 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22419 if (!_new_children) {
22420 p->error_indicator = 1;
22421 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022422 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022423 return NULL;
22424 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022425 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022427 _children[_n++] = _res;
22428 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022430 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022431 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022434 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22435 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022436 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022437 p->error_indicator = 1;
22438 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22443 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022444 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022445 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022446 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022447}
22448
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022449// _gather_111: kwarg_or_starred _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022450static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022451_gather_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022452{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022453 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022455 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022456 return NULL;
22457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022458 asdl_seq * _res = NULL;
22459 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022460 { // kwarg_or_starred _loop0_112
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022461 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022462 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022463 return NULL;
22464 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022465 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 -070022466 KeywordOrStarred* elem;
22467 asdl_seq * seq;
22468 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022469 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022470 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022471 (seq = _loop0_112_rule(p)) // _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022472 )
22473 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022474 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 +010022475 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022476 goto done;
22477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022478 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022479 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
22480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022482 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022483 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022484 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022485 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022486}
22487
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022488// _loop0_114: ',' kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022489static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022490_loop0_114_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022491{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022492 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022494 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022495 return NULL;
22496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022497 void *_res = NULL;
22498 int _mark = p->mark;
22499 int _start_mark = p->mark;
22500 void **_children = PyMem_Malloc(sizeof(void *));
22501 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022502 p->error_indicator = 1;
22503 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022504 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022505 return NULL;
22506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022507 ssize_t _children_capacity = 1;
22508 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022509 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022511 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022512 return NULL;
22513 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022514 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 +010022515 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022516 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022517 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022518 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022519 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022520 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022521 )
22522 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022523 _res = elem;
22524 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022525 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022526 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022527 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022528 return NULL;
22529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022530 if (_n == _children_capacity) {
22531 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022532 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22533 if (!_new_children) {
22534 p->error_indicator = 1;
22535 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022536 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022537 return NULL;
22538 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022539 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022541 _children[_n++] = _res;
22542 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022544 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022545 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022548 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22549 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022550 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022551 p->error_indicator = 1;
22552 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022553 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022554 return NULL;
22555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022556 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22557 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022558 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022559 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022560 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022561}
22562
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022563// _gather_113: kwarg_or_double_starred _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022564static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022565_gather_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022566{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022567 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022569 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022570 return NULL;
22571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022572 asdl_seq * _res = NULL;
22573 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022574 { // kwarg_or_double_starred _loop0_114
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022576 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022577 return NULL;
22578 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022579 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 -070022580 KeywordOrStarred* elem;
22581 asdl_seq * seq;
22582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022583 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022584 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022585 (seq = _loop0_114_rule(p)) // _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022586 )
22587 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022588 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 +010022589 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022590 goto done;
22591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022592 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022593 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
22594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_114"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022596 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022597 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022598 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022599 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022600}
22601
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022602// _loop0_116: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022603static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022604_loop0_116_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022605{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022606 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022608 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022609 return NULL;
22610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022611 void *_res = NULL;
22612 int _mark = p->mark;
22613 int _start_mark = p->mark;
22614 void **_children = PyMem_Malloc(sizeof(void *));
22615 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022616 p->error_indicator = 1;
22617 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022619 return NULL;
22620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022621 ssize_t _children_capacity = 1;
22622 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022623 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022625 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022626 return NULL;
22627 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022628 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 +010022629 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022630 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022631 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022632 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022633 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022634 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022635 )
22636 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022637 _res = elem;
22638 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022639 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022640 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022641 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022642 return NULL;
22643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022644 if (_n == _children_capacity) {
22645 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022646 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22647 if (!_new_children) {
22648 p->error_indicator = 1;
22649 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022650 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022651 return NULL;
22652 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022653 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022655 _children[_n++] = _res;
22656 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022658 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022659 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022662 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22663 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022664 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022665 p->error_indicator = 1;
22666 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022667 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022668 return NULL;
22669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022670 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22671 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022672 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022673 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022674 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022675}
22676
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022677// _gather_115: kwarg_or_starred _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022678static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022679_gather_115_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022680{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022681 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022683 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022684 return NULL;
22685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022686 asdl_seq * _res = NULL;
22687 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022688 { // kwarg_or_starred _loop0_116
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022689 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022690 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022691 return NULL;
22692 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022693 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 -070022694 KeywordOrStarred* elem;
22695 asdl_seq * seq;
22696 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022697 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022698 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022699 (seq = _loop0_116_rule(p)) // _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022700 )
22701 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022702 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 +010022703 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022704 goto done;
22705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022706 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022707 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
22708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022710 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022711 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022712 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022713 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022714}
22715
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022716// _loop0_118: ',' kwarg_or_double_starred
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022717static asdl_seq *
22718_loop0_118_rule(Parser *p)
22719{
22720 D(p->level++);
22721 if (p->error_indicator) {
22722 D(p->level--);
22723 return NULL;
22724 }
22725 void *_res = NULL;
22726 int _mark = p->mark;
22727 int _start_mark = p->mark;
22728 void **_children = PyMem_Malloc(sizeof(void *));
22729 if (!_children) {
22730 p->error_indicator = 1;
22731 PyErr_NoMemory();
22732 D(p->level--);
22733 return NULL;
22734 }
22735 ssize_t _children_capacity = 1;
22736 ssize_t _n = 0;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022737 { // ',' kwarg_or_double_starred
22738 if (p->error_indicator) {
22739 D(p->level--);
22740 return NULL;
22741 }
22742 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22743 Token * _literal;
22744 KeywordOrStarred* elem;
22745 while (
22746 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22747 &&
22748 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22749 )
22750 {
22751 _res = elem;
22752 if (_res == NULL && PyErr_Occurred()) {
22753 p->error_indicator = 1;
22754 PyMem_Free(_children);
22755 D(p->level--);
22756 return NULL;
22757 }
22758 if (_n == _children_capacity) {
22759 _children_capacity *= 2;
22760 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22761 if (!_new_children) {
22762 p->error_indicator = 1;
22763 PyErr_NoMemory();
22764 D(p->level--);
22765 return NULL;
22766 }
22767 _children = _new_children;
22768 }
22769 _children[_n++] = _res;
22770 _mark = p->mark;
22771 }
22772 p->mark = _mark;
22773 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
22774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
22775 }
22776 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22777 if (!_seq) {
22778 PyMem_Free(_children);
22779 p->error_indicator = 1;
22780 PyErr_NoMemory();
22781 D(p->level--);
22782 return NULL;
22783 }
22784 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22785 PyMem_Free(_children);
22786 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
22787 D(p->level--);
22788 return _seq;
22789}
22790
22791// _gather_117: kwarg_or_double_starred _loop0_118
22792static asdl_seq *
22793_gather_117_rule(Parser *p)
22794{
22795 D(p->level++);
22796 if (p->error_indicator) {
22797 D(p->level--);
22798 return NULL;
22799 }
22800 asdl_seq * _res = NULL;
22801 int _mark = p->mark;
22802 { // kwarg_or_double_starred _loop0_118
22803 if (p->error_indicator) {
22804 D(p->level--);
22805 return NULL;
22806 }
22807 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22808 KeywordOrStarred* elem;
22809 asdl_seq * seq;
22810 if (
22811 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22812 &&
22813 (seq = _loop0_118_rule(p)) // _loop0_118
22814 )
22815 {
22816 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22817 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22818 goto done;
22819 }
22820 p->mark = _mark;
22821 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
22822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22823 }
22824 _res = NULL;
22825 done:
22826 D(p->level--);
22827 return _res;
22828}
22829
22830// _loop0_119: (',' star_target)
22831static asdl_seq *
22832_loop0_119_rule(Parser *p)
22833{
22834 D(p->level++);
22835 if (p->error_indicator) {
22836 D(p->level--);
22837 return NULL;
22838 }
22839 void *_res = NULL;
22840 int _mark = p->mark;
22841 int _start_mark = p->mark;
22842 void **_children = PyMem_Malloc(sizeof(void *));
22843 if (!_children) {
22844 p->error_indicator = 1;
22845 PyErr_NoMemory();
22846 D(p->level--);
22847 return NULL;
22848 }
22849 ssize_t _children_capacity = 1;
22850 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022851 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022853 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022854 return NULL;
22855 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022856 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22857 void *_tmp_150_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022858 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022859 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022860 )
22861 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022862 _res = _tmp_150_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022863 if (_n == _children_capacity) {
22864 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022865 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22866 if (!_new_children) {
22867 p->error_indicator = 1;
22868 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022869 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022870 return NULL;
22871 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022872 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022874 _children[_n++] = _res;
22875 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022877 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022878 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022881 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22882 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022883 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022884 p->error_indicator = 1;
22885 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022886 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022887 return NULL;
22888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022889 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22890 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022891 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022892 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022893 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022894}
22895
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022896// _loop0_121: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022897static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022898_loop0_121_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022899{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022900 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022902 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022903 return NULL;
22904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022905 void *_res = NULL;
22906 int _mark = p->mark;
22907 int _start_mark = p->mark;
22908 void **_children = PyMem_Malloc(sizeof(void *));
22909 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022910 p->error_indicator = 1;
22911 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022912 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022913 return NULL;
22914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022915 ssize_t _children_capacity = 1;
22916 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022917 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022920 return NULL;
22921 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022922 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022923 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022924 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022925 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022926 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022927 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022928 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022929 )
22930 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022931 _res = elem;
22932 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022933 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022934 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022936 return NULL;
22937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022938 if (_n == _children_capacity) {
22939 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022940 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22941 if (!_new_children) {
22942 p->error_indicator = 1;
22943 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022945 return NULL;
22946 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022947 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022949 _children[_n++] = _res;
22950 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022952 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022953 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022956 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22957 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022958 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022959 p->error_indicator = 1;
22960 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022962 return NULL;
22963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022964 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22965 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022966 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022967 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022968 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022969}
22970
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022971// _gather_120: star_target _loop0_121
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022972static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022973_gather_120_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022974{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022975 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022977 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022978 return NULL;
22979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022980 asdl_seq * _res = NULL;
22981 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022982 { // star_target _loop0_121
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022984 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022985 return NULL;
22986 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022987 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 +010022988 expr_ty elem;
22989 asdl_seq * seq;
22990 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022991 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022992 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022993 (seq = _loop0_121_rule(p)) // _loop0_121
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022994 )
22995 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022996 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 +010022997 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022998 goto done;
22999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023000 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023001 D(fprintf(stderr, "%*c%s _gather_120[%d-%d]: %s failed!\n", p->level, ' ',
23002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_121"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023004 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023005 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023006 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023007 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023008}
23009
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023010// _tmp_122: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023011static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023012_tmp_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023013{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023014 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023017 return NULL;
23018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023019 void * _res = NULL;
23020 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023021 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023022 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023023 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023024 return NULL;
23025 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023026 D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023027 expr_ty star_target_var;
23028 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023029 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023030 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023031 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023032 )
23033 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023034 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 +010023035 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023036 goto done;
23037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023038 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023039 D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023042 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023043 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023045 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023046}
23047
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023048// _loop0_124: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023049static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023050_loop0_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023052 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023055 return NULL;
23056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023057 void *_res = NULL;
23058 int _mark = p->mark;
23059 int _start_mark = p->mark;
23060 void **_children = PyMem_Malloc(sizeof(void *));
23061 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023062 p->error_indicator = 1;
23063 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023064 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023065 return NULL;
23066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023067 ssize_t _children_capacity = 1;
23068 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023069 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023072 return NULL;
23073 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023074 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023075 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023076 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023077 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023078 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023079 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023080 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023081 )
23082 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023083 _res = elem;
23084 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023085 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023086 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023088 return NULL;
23089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023090 if (_n == _children_capacity) {
23091 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023092 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23093 if (!_new_children) {
23094 p->error_indicator = 1;
23095 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023096 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023097 return NULL;
23098 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023099 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023101 _children[_n++] = _res;
23102 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023104 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023105 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023108 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23109 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023110 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023111 p->error_indicator = 1;
23112 PyErr_NoMemory();
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 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23117 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023118 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023119 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023120 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023121}
23122
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023123// _gather_123: del_target _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023124static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023125_gather_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023126{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023127 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023129 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023130 return NULL;
23131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023132 asdl_seq * _res = NULL;
23133 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023134 { // del_target _loop0_124
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023137 return NULL;
23138 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023139 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 +010023140 expr_ty elem;
23141 asdl_seq * seq;
23142 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023143 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023144 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023145 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023146 )
23147 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023148 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 +010023149 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023150 goto done;
23151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023152 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023153 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
23154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023156 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023157 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023159 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023160}
23161
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023162// _loop0_126: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023163static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023164_loop0_126_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023165{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023166 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023169 return NULL;
23170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023171 void *_res = NULL;
23172 int _mark = p->mark;
23173 int _start_mark = p->mark;
23174 void **_children = PyMem_Malloc(sizeof(void *));
23175 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023176 p->error_indicator = 1;
23177 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023178 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023179 return NULL;
23180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023181 ssize_t _children_capacity = 1;
23182 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023183 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023186 return NULL;
23187 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023188 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023189 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023190 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023191 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023193 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023194 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023195 )
23196 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023197 _res = elem;
23198 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023199 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023200 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023201 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023202 return NULL;
23203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023204 if (_n == _children_capacity) {
23205 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23207 if (!_new_children) {
23208 p->error_indicator = 1;
23209 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023211 return NULL;
23212 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023213 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023215 _children[_n++] = _res;
23216 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023218 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023219 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023222 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23223 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023224 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023225 p->error_indicator = 1;
23226 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023228 return NULL;
23229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023230 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23231 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023232 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023233 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023234 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023235}
23236
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023237// _gather_125: target _loop0_126
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023238static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023239_gather_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023240{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023241 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023244 return NULL;
23245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023246 asdl_seq * _res = NULL;
23247 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023248 { // target _loop0_126
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023251 return NULL;
23252 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023253 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 +010023254 expr_ty elem;
23255 asdl_seq * seq;
23256 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023257 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023258 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023259 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023260 )
23261 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023262 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 +010023263 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023264 goto done;
23265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023266 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023267 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
23268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_126"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023270 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023271 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023272 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023273 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023274}
23275
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023276// _tmp_127: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023277static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023278_tmp_127_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023279{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023280 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023283 return NULL;
23284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023285 void * _res = NULL;
23286 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023287 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023288 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023289 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023290 return NULL;
23291 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023292 D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023293 expr_ty args_var;
23294 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023295 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023296 )
23297 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023298 D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023299 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023300 goto done;
23301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023302 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023303 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023305 }
23306 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023309 return NULL;
23310 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023311 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 +010023312 expr_ty expression_var;
23313 asdl_seq* for_if_clauses_var;
23314 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023315 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023316 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023317 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023318 )
23319 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023320 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 +010023321 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023322 goto done;
23323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023324 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023325 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023328 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023329 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023331 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023332}
23333
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023334// _loop0_128: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023335static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023336_loop0_128_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023337{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023338 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023340 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023341 return NULL;
23342 }
23343 void *_res = NULL;
23344 int _mark = p->mark;
23345 int _start_mark = p->mark;
23346 void **_children = PyMem_Malloc(sizeof(void *));
23347 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023348 p->error_indicator = 1;
23349 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023350 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023351 return NULL;
23352 }
23353 ssize_t _children_capacity = 1;
23354 ssize_t _n = 0;
23355 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023356 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023357 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023358 return NULL;
23359 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023360 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 +030023361 asdl_seq* star_named_expressions_var;
23362 while (
23363 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23364 )
23365 {
23366 _res = star_named_expressions_var;
23367 if (_n == _children_capacity) {
23368 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023369 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23370 if (!_new_children) {
23371 p->error_indicator = 1;
23372 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023373 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023374 return NULL;
23375 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023376 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023377 }
23378 _children[_n++] = _res;
23379 _mark = p->mark;
23380 }
23381 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023382 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023384 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023385 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23386 if (!_seq) {
23387 PyMem_Free(_children);
23388 p->error_indicator = 1;
23389 PyErr_NoMemory();
23390 D(p->level--);
23391 return NULL;
23392 }
23393 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23394 PyMem_Free(_children);
23395 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023396 D(p->level--);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023397 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023398}
23399
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023400// _loop0_129: (star_targets '=')
23401static asdl_seq *
23402_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023403{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023404 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023407 return NULL;
23408 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023409 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023410 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023411 int _start_mark = p->mark;
23412 void **_children = PyMem_Malloc(sizeof(void *));
23413 if (!_children) {
23414 p->error_indicator = 1;
23415 PyErr_NoMemory();
23416 D(p->level--);
23417 return NULL;
23418 }
23419 ssize_t _children_capacity = 1;
23420 ssize_t _n = 0;
23421 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023424 return NULL;
23425 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023426 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023427 void *_tmp_151_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023428 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023429 (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023430 )
23431 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023432 _res = _tmp_151_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023433 if (_n == _children_capacity) {
23434 _children_capacity *= 2;
23435 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23436 if (!_new_children) {
23437 p->error_indicator = 1;
23438 PyErr_NoMemory();
23439 D(p->level--);
23440 return NULL;
23441 }
23442 _children = _new_children;
23443 }
23444 _children[_n++] = _res;
23445 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023447 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023448 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023450 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023451 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23452 if (!_seq) {
23453 PyMem_Free(_children);
23454 p->error_indicator = 1;
23455 PyErr_NoMemory();
23456 D(p->level--);
23457 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023458 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023459 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23460 PyMem_Free(_children);
23461 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023462 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023463 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023464}
23465
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023466// _loop0_130: (star_targets '=')
23467static asdl_seq *
23468_loop0_130_rule(Parser *p)
23469{
23470 D(p->level++);
23471 if (p->error_indicator) {
23472 D(p->level--);
23473 return NULL;
23474 }
23475 void *_res = NULL;
23476 int _mark = p->mark;
23477 int _start_mark = p->mark;
23478 void **_children = PyMem_Malloc(sizeof(void *));
23479 if (!_children) {
23480 p->error_indicator = 1;
23481 PyErr_NoMemory();
23482 D(p->level--);
23483 return NULL;
23484 }
23485 ssize_t _children_capacity = 1;
23486 ssize_t _n = 0;
23487 { // (star_targets '=')
23488 if (p->error_indicator) {
23489 D(p->level--);
23490 return NULL;
23491 }
23492 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23493 void *_tmp_152_var;
23494 while (
23495 (_tmp_152_var = _tmp_152_rule(p)) // star_targets '='
23496 )
23497 {
23498 _res = _tmp_152_var;
23499 if (_n == _children_capacity) {
23500 _children_capacity *= 2;
23501 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23502 if (!_new_children) {
23503 p->error_indicator = 1;
23504 PyErr_NoMemory();
23505 D(p->level--);
23506 return NULL;
23507 }
23508 _children = _new_children;
23509 }
23510 _children[_n++] = _res;
23511 _mark = p->mark;
23512 }
23513 p->mark = _mark;
23514 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
23515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23516 }
23517 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23518 if (!_seq) {
23519 PyMem_Free(_children);
23520 p->error_indicator = 1;
23521 PyErr_NoMemory();
23522 D(p->level--);
23523 return NULL;
23524 }
23525 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23526 PyMem_Free(_children);
23527 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
23528 D(p->level--);
23529 return _seq;
23530}
23531
23532// _tmp_131: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023533static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023534_tmp_131_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023535{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023536 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023539 return NULL;
23540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023541 void * _res = NULL;
23542 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023543 { // yield_expr
23544 if (p->error_indicator) {
23545 D(p->level--);
23546 return NULL;
23547 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023548 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 -070023549 expr_ty yield_expr_var;
23550 if (
23551 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23552 )
23553 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023554 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 -070023555 _res = yield_expr_var;
23556 goto done;
23557 }
23558 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023559 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23561 }
23562 { // star_expressions
23563 if (p->error_indicator) {
23564 D(p->level--);
23565 return NULL;
23566 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023567 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 -070023568 expr_ty star_expressions_var;
23569 if (
23570 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23571 )
23572 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023573 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 -070023574 _res = star_expressions_var;
23575 goto done;
23576 }
23577 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023578 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23580 }
23581 _res = NULL;
23582 done:
23583 D(p->level--);
23584 return _res;
23585}
23586
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023587// _tmp_132: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023588static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023589_tmp_132_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023590{
23591 D(p->level++);
23592 if (p->error_indicator) {
23593 D(p->level--);
23594 return NULL;
23595 }
23596 void * _res = NULL;
23597 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023598 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023601 return NULL;
23602 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023603 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023604 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023605 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023606 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023607 )
23608 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023609 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023610 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023611 goto done;
23612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023613 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023614 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023616 }
23617 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023620 return NULL;
23621 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023622 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023623 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023624 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023625 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023626 )
23627 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023628 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023629 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023630 goto done;
23631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023632 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023633 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023635 }
23636 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023638 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023639 return NULL;
23640 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023641 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023642 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023643 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023644 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023645 )
23646 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023647 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023648 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023649 goto done;
23650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023651 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023652 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023655 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023656 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023657 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023658 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023659}
23660
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023661// _loop0_133: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023662static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023663_loop0_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023664{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023665 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023668 return NULL;
23669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023670 void *_res = NULL;
23671 int _mark = p->mark;
23672 int _start_mark = p->mark;
23673 void **_children = PyMem_Malloc(sizeof(void *));
23674 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023675 p->error_indicator = 1;
23676 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023677 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023678 return NULL;
23679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023680 ssize_t _children_capacity = 1;
23681 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023682 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023683 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023684 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023685 return NULL;
23686 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023687 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 -070023688 arg_ty param_no_default_var;
23689 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023690 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023691 )
23692 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023693 _res = param_no_default_var;
23694 if (_n == _children_capacity) {
23695 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023696 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23697 if (!_new_children) {
23698 p->error_indicator = 1;
23699 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023700 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023701 return NULL;
23702 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023703 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023705 _children[_n++] = _res;
23706 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023708 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023709 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023712 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23713 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023714 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023715 p->error_indicator = 1;
23716 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023717 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023718 return NULL;
23719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023720 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23721 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023722 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023723 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023724 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023725}
23726
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023727// _tmp_134: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023728static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023729_tmp_134_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023730{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023731 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023733 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023734 return NULL;
23735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023736 void * _res = NULL;
23737 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023738 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023740 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023741 return NULL;
23742 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023743 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 +010023744 SlashWithDefault* slash_with_default_var;
23745 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023746 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023747 )
23748 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023749 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 +010023750 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023751 goto done;
23752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023753 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023754 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023756 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023757 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023760 return NULL;
23761 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023762 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23763 asdl_seq * _loop1_153_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023764 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023765 (_loop1_153_var = _loop1_153_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023766 )
23767 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023768 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23769 _res = _loop1_153_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023770 goto done;
23771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023772 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023773 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023776 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023777 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023778 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023779 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023780}
23781
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023782// _loop0_135: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023783static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023784_loop0_135_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023785{
23786 D(p->level++);
23787 if (p->error_indicator) {
23788 D(p->level--);
23789 return NULL;
23790 }
23791 void *_res = NULL;
23792 int _mark = p->mark;
23793 int _start_mark = p->mark;
23794 void **_children = PyMem_Malloc(sizeof(void *));
23795 if (!_children) {
23796 p->error_indicator = 1;
23797 PyErr_NoMemory();
23798 D(p->level--);
23799 return NULL;
23800 }
23801 ssize_t _children_capacity = 1;
23802 ssize_t _n = 0;
23803 { // lambda_param_no_default
23804 if (p->error_indicator) {
23805 D(p->level--);
23806 return NULL;
23807 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023808 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 -070023809 arg_ty lambda_param_no_default_var;
23810 while (
23811 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23812 )
23813 {
23814 _res = lambda_param_no_default_var;
23815 if (_n == _children_capacity) {
23816 _children_capacity *= 2;
23817 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23818 if (!_new_children) {
23819 p->error_indicator = 1;
23820 PyErr_NoMemory();
23821 D(p->level--);
23822 return NULL;
23823 }
23824 _children = _new_children;
23825 }
23826 _children[_n++] = _res;
23827 _mark = p->mark;
23828 }
23829 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023830 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23832 }
23833 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23834 if (!_seq) {
23835 PyMem_Free(_children);
23836 p->error_indicator = 1;
23837 PyErr_NoMemory();
23838 D(p->level--);
23839 return NULL;
23840 }
23841 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23842 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023843 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023844 D(p->level--);
23845 return _seq;
23846}
23847
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023848// _tmp_136: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023849static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023850_tmp_136_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023851{
23852 D(p->level++);
23853 if (p->error_indicator) {
23854 D(p->level--);
23855 return NULL;
23856 }
23857 void * _res = NULL;
23858 int _mark = p->mark;
23859 { // lambda_slash_with_default
23860 if (p->error_indicator) {
23861 D(p->level--);
23862 return NULL;
23863 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023864 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 -070023865 SlashWithDefault* lambda_slash_with_default_var;
23866 if (
23867 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23868 )
23869 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023870 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 -070023871 _res = lambda_slash_with_default_var;
23872 goto done;
23873 }
23874 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023875 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23877 }
23878 { // lambda_param_with_default+
23879 if (p->error_indicator) {
23880 D(p->level--);
23881 return NULL;
23882 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023883 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23884 asdl_seq * _loop1_154_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023885 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023886 (_loop1_154_var = _loop1_154_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023887 )
23888 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023889 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23890 _res = _loop1_154_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023891 goto done;
23892 }
23893 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023894 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23896 }
23897 _res = NULL;
23898 done:
23899 D(p->level--);
23900 return _res;
23901}
23902
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023903// _tmp_137: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023904static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023905_tmp_137_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023906{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023907 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023908 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023909 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023910 return NULL;
23911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023912 void * _res = NULL;
23913 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023914 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023915 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023916 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023917 return NULL;
23918 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023919 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023920 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023921 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023922 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023923 )
23924 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023925 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023926 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023927 goto done;
23928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023929 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023930 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023932 }
23933 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023935 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023936 return NULL;
23937 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023938 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023939 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023940 void *_tmp_155_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023941 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023942 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023943 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023944 (_tmp_155_var = _tmp_155_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023945 )
23946 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023947 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23948 _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023949 goto done;
23950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023951 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023952 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023955 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023956 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023957 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023958 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023959}
23960
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023961// _tmp_138: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023962static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023963_tmp_138_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023964{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023965 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023966 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023967 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023968 return NULL;
23969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023970 void * _res = NULL;
23971 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023972 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023975 return NULL;
23976 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023977 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023978 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023979 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023980 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023981 )
23982 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023983 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023984 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023985 goto done;
23986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023987 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023988 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023990 }
23991 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023994 return NULL;
23995 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023996 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023997 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023998 void *_tmp_156_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023999 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024000 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024001 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024002 (_tmp_156_var = _tmp_156_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024003 )
24004 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024005 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
24006 _res = _PyPegen_dummy_name(p, _literal, _tmp_156_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024007 goto done;
24008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024009 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024010 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024013 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024014 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024015 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024016 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024017}
24018
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024019// _tmp_139: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024020static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024021_tmp_139_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024022{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024023 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024025 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024026 return NULL;
24027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024028 void * _res = NULL;
24029 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024030 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024031 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024032 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024033 return NULL;
24034 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024035 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024036 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024037 expr_ty z;
24038 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010024039 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024040 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024041 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024042 )
24043 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024044 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 +010024045 _res = z;
24046 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024047 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024048 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024049 return NULL;
24050 }
24051 goto done;
24052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024053 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024054 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024057 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024058 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024059 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024060 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024061}
24062
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024063// _tmp_140: '.' | '...'
24064static void *
24065_tmp_140_rule(Parser *p)
24066{
24067 D(p->level++);
24068 if (p->error_indicator) {
24069 D(p->level--);
24070 return NULL;
24071 }
24072 void * _res = NULL;
24073 int _mark = p->mark;
24074 { // '.'
24075 if (p->error_indicator) {
24076 D(p->level--);
24077 return NULL;
24078 }
24079 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24080 Token * _literal;
24081 if (
24082 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24083 )
24084 {
24085 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24086 _res = _literal;
24087 goto done;
24088 }
24089 p->mark = _mark;
24090 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24092 }
24093 { // '...'
24094 if (p->error_indicator) {
24095 D(p->level--);
24096 return NULL;
24097 }
24098 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24099 Token * _literal;
24100 if (
24101 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24102 )
24103 {
24104 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24105 _res = _literal;
24106 goto done;
24107 }
24108 p->mark = _mark;
24109 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24111 }
24112 _res = NULL;
24113 done:
24114 D(p->level--);
24115 return _res;
24116}
24117
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024118// _tmp_141: '.' | '...'
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024119static void *
24120_tmp_141_rule(Parser *p)
24121{
24122 D(p->level++);
24123 if (p->error_indicator) {
24124 D(p->level--);
24125 return NULL;
24126 }
24127 void * _res = NULL;
24128 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024129 { // '.'
24130 if (p->error_indicator) {
24131 D(p->level--);
24132 return NULL;
24133 }
24134 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24135 Token * _literal;
24136 if (
24137 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24138 )
24139 {
24140 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24141 _res = _literal;
24142 goto done;
24143 }
24144 p->mark = _mark;
24145 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24147 }
24148 { // '...'
24149 if (p->error_indicator) {
24150 D(p->level--);
24151 return NULL;
24152 }
24153 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24154 Token * _literal;
24155 if (
24156 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24157 )
24158 {
24159 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24160 _res = _literal;
24161 goto done;
24162 }
24163 p->mark = _mark;
24164 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24166 }
24167 _res = NULL;
24168 done:
24169 D(p->level--);
24170 return _res;
24171}
24172
24173// _tmp_142: '@' named_expression NEWLINE
24174static void *
24175_tmp_142_rule(Parser *p)
24176{
24177 D(p->level++);
24178 if (p->error_indicator) {
24179 D(p->level--);
24180 return NULL;
24181 }
24182 void * _res = NULL;
24183 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024184 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024186 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024187 return NULL;
24188 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024189 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 +010024190 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024191 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024192 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024193 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024194 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024195 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024196 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024197 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024198 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024199 )
24200 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024201 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 +010024202 _res = f;
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_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
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_143: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024221static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024222_tmp_143_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 { // ',' star_expression
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_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024237 Token * _literal;
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 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024241 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024242 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024243 )
24244 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024245 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 +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_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
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_144: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024265static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024266_tmp_144_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 { // ',' expression
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_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024281 Token * _literal;
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 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024285 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024286 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024287 )
24288 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024289 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
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;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024299 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024302 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024303 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024304 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024305 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024306}
24307
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024308// _tmp_145: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024309static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024310_tmp_145_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024311{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024312 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024313 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024315 return NULL;
24316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024317 void * _res = NULL;
24318 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024319 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024321 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024322 return NULL;
24323 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024324 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024325 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024326 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024327 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024328 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024329 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024330 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024331 )
24332 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024333 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 +010024334 _res = c;
24335 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024336 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024338 return NULL;
24339 }
24340 goto done;
24341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024342 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024343 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024346 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024347 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024348 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024349 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024350}
24351
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024352// _tmp_146: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024353static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024354_tmp_146_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024355{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024356 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024357 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024358 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024359 return NULL;
24360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024361 void * _res = NULL;
24362 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024363 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024364 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024365 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024366 return NULL;
24367 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024368 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024369 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024370 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024371 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024372 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024373 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024374 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024375 )
24376 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024377 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 +010024378 _res = c;
24379 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024380 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024381 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024382 return NULL;
24383 }
24384 goto done;
24385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024386 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024387 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024389 }
24390 _res = NULL;
24391 done:
24392 D(p->level--);
24393 return _res;
24394}
24395
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024396// _tmp_147: 'if' disjunction
24397static void *
24398_tmp_147_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 { // 'if' disjunction
24408 if (p->error_indicator) {
24409 D(p->level--);
24410 return NULL;
24411 }
24412 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24413 Token * _keyword;
24414 expr_ty z;
24415 if (
24416 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24417 &&
24418 (z = disjunction_rule(p)) // disjunction
24419 )
24420 {
24421 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24422 _res = z;
24423 if (_res == NULL && PyErr_Occurred()) {
24424 p->error_indicator = 1;
24425 D(p->level--);
24426 return NULL;
24427 }
24428 goto done;
24429 }
24430 p->mark = _mark;
24431 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24433 }
24434 _res = NULL;
24435 done:
24436 D(p->level--);
24437 return _res;
24438}
24439
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024440// _tmp_148: 'if' disjunction
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024441static void *
24442_tmp_148_rule(Parser *p)
24443{
24444 D(p->level++);
24445 if (p->error_indicator) {
24446 D(p->level--);
24447 return NULL;
24448 }
24449 void * _res = NULL;
24450 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024451 { // 'if' disjunction
24452 if (p->error_indicator) {
24453 D(p->level--);
24454 return NULL;
24455 }
24456 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24457 Token * _keyword;
24458 expr_ty z;
24459 if (
24460 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24461 &&
24462 (z = disjunction_rule(p)) // disjunction
24463 )
24464 {
24465 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24466 _res = z;
24467 if (_res == NULL && PyErr_Occurred()) {
24468 p->error_indicator = 1;
24469 D(p->level--);
24470 return NULL;
24471 }
24472 goto done;
24473 }
24474 p->mark = _mark;
24475 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
24476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24477 }
24478 _res = NULL;
24479 done:
24480 D(p->level--);
24481 return _res;
24482}
24483
24484// _tmp_149: starred_expression | named_expression !'='
24485static void *
24486_tmp_149_rule(Parser *p)
24487{
24488 D(p->level++);
24489 if (p->error_indicator) {
24490 D(p->level--);
24491 return NULL;
24492 }
24493 void * _res = NULL;
24494 int _mark = p->mark;
24495 { // starred_expression
24496 if (p->error_indicator) {
24497 D(p->level--);
24498 return NULL;
24499 }
24500 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
24501 expr_ty starred_expression_var;
24502 if (
24503 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24504 )
24505 {
24506 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
24507 _res = starred_expression_var;
24508 goto done;
24509 }
24510 p->mark = _mark;
24511 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24513 }
24514 { // named_expression !'='
24515 if (p->error_indicator) {
24516 D(p->level--);
24517 return NULL;
24518 }
24519 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
24520 expr_ty named_expression_var;
24521 if (
24522 (named_expression_var = named_expression_rule(p)) // named_expression
24523 &&
24524 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24525 )
24526 {
24527 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
24528 _res = named_expression_var;
24529 goto done;
24530 }
24531 p->mark = _mark;
24532 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24534 }
24535 _res = NULL;
24536 done:
24537 D(p->level--);
24538 return _res;
24539}
24540
24541// _tmp_150: ',' star_target
24542static void *
24543_tmp_150_rule(Parser *p)
24544{
24545 D(p->level++);
24546 if (p->error_indicator) {
24547 D(p->level--);
24548 return NULL;
24549 }
24550 void * _res = NULL;
24551 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024552 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024553 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024554 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024555 return NULL;
24556 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024557 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024558 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024559 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024560 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024561 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024562 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024563 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024564 )
24565 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024566 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 +010024567 _res = c;
24568 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024569 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024570 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024571 return NULL;
24572 }
24573 goto done;
24574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024575 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024576 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024578 }
24579 _res = NULL;
24580 done:
24581 D(p->level--);
24582 return _res;
24583}
24584
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024585// _tmp_151: star_targets '='
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024586static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024587_tmp_151_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024588{
24589 D(p->level++);
24590 if (p->error_indicator) {
24591 D(p->level--);
24592 return NULL;
24593 }
24594 void * _res = NULL;
24595 int _mark = p->mark;
24596 { // star_targets '='
24597 if (p->error_indicator) {
24598 D(p->level--);
24599 return NULL;
24600 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024601 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024602 Token * _literal;
24603 expr_ty star_targets_var;
24604 if (
24605 (star_targets_var = star_targets_rule(p)) // star_targets
24606 &&
24607 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24608 )
24609 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024610 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 +030024611 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24612 goto done;
24613 }
24614 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024615 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24617 }
24618 _res = NULL;
24619 done:
24620 D(p->level--);
24621 return _res;
24622}
24623
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024624// _tmp_152: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024625static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024626_tmp_152_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024627{
24628 D(p->level++);
24629 if (p->error_indicator) {
24630 D(p->level--);
24631 return NULL;
24632 }
24633 void * _res = NULL;
24634 int _mark = p->mark;
24635 { // star_targets '='
24636 if (p->error_indicator) {
24637 D(p->level--);
24638 return NULL;
24639 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024640 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 -070024641 Token * _literal;
24642 expr_ty star_targets_var;
24643 if (
24644 (star_targets_var = star_targets_rule(p)) // star_targets
24645 &&
24646 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24647 )
24648 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024649 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 -070024650 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24651 goto done;
24652 }
24653 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024654 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24656 }
24657 _res = NULL;
24658 done:
24659 D(p->level--);
24660 return _res;
24661}
24662
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024663// _loop1_153: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024664static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024665_loop1_153_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024666{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024667 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024668 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024669 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024670 return NULL;
24671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024672 void *_res = NULL;
24673 int _mark = p->mark;
24674 int _start_mark = p->mark;
24675 void **_children = PyMem_Malloc(sizeof(void *));
24676 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024677 p->error_indicator = 1;
24678 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024679 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024680 return NULL;
24681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024682 ssize_t _children_capacity = 1;
24683 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024684 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024685 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024686 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024687 return NULL;
24688 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024689 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 -070024690 NameDefaultPair* param_with_default_var;
24691 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024692 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024693 )
24694 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024695 _res = param_with_default_var;
24696 if (_n == _children_capacity) {
24697 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024698 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24699 if (!_new_children) {
24700 p->error_indicator = 1;
24701 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024702 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024703 return NULL;
24704 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024705 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024707 _children[_n++] = _res;
24708 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024710 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024711 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024714 if (_n == 0 || p->error_indicator) {
24715 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024716 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024717 return NULL;
24718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024719 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24720 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024721 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024722 p->error_indicator = 1;
24723 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024724 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024725 return NULL;
24726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024727 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24728 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024729 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024730 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024731 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024732}
24733
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024734// _loop1_154: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024735static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024736_loop1_154_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024737{
24738 D(p->level++);
24739 if (p->error_indicator) {
24740 D(p->level--);
24741 return NULL;
24742 }
24743 void *_res = NULL;
24744 int _mark = p->mark;
24745 int _start_mark = p->mark;
24746 void **_children = PyMem_Malloc(sizeof(void *));
24747 if (!_children) {
24748 p->error_indicator = 1;
24749 PyErr_NoMemory();
24750 D(p->level--);
24751 return NULL;
24752 }
24753 ssize_t _children_capacity = 1;
24754 ssize_t _n = 0;
24755 { // lambda_param_with_default
24756 if (p->error_indicator) {
24757 D(p->level--);
24758 return NULL;
24759 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024760 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 -070024761 NameDefaultPair* lambda_param_with_default_var;
24762 while (
24763 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24764 )
24765 {
24766 _res = lambda_param_with_default_var;
24767 if (_n == _children_capacity) {
24768 _children_capacity *= 2;
24769 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24770 if (!_new_children) {
24771 p->error_indicator = 1;
24772 PyErr_NoMemory();
24773 D(p->level--);
24774 return NULL;
24775 }
24776 _children = _new_children;
24777 }
24778 _children[_n++] = _res;
24779 _mark = p->mark;
24780 }
24781 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024782 D(fprintf(stderr, "%*c%s _loop1_154[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24784 }
24785 if (_n == 0 || p->error_indicator) {
24786 PyMem_Free(_children);
24787 D(p->level--);
24788 return NULL;
24789 }
24790 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24791 if (!_seq) {
24792 PyMem_Free(_children);
24793 p->error_indicator = 1;
24794 PyErr_NoMemory();
24795 D(p->level--);
24796 return NULL;
24797 }
24798 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24799 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024800 _PyPegen_insert_memo(p, _start_mark, _loop1_154_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024801 D(p->level--);
24802 return _seq;
24803}
24804
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024805// _tmp_155: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024806static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024807_tmp_155_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024808{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024809 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024810 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024811 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024812 return NULL;
24813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024814 void * _res = NULL;
24815 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024816 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024817 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024818 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024819 return NULL;
24820 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024821 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024822 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024823 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024824 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024825 )
24826 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024827 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024828 _res = _literal;
24829 goto done;
24830 }
24831 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024832 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24834 }
24835 { // '**'
24836 if (p->error_indicator) {
24837 D(p->level--);
24838 return NULL;
24839 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024840 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024841 Token * _literal;
24842 if (
24843 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24844 )
24845 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024846 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024847 _res = _literal;
24848 goto done;
24849 }
24850 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024851 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24853 }
24854 _res = NULL;
24855 done:
24856 D(p->level--);
24857 return _res;
24858}
24859
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024860// _tmp_156: ':' | '**'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024861static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024862_tmp_156_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024863{
24864 D(p->level++);
24865 if (p->error_indicator) {
24866 D(p->level--);
24867 return NULL;
24868 }
24869 void * _res = NULL;
24870 int _mark = p->mark;
24871 { // ':'
24872 if (p->error_indicator) {
24873 D(p->level--);
24874 return NULL;
24875 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024876 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024877 Token * _literal;
24878 if (
24879 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24880 )
24881 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024882 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024883 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024884 goto done;
24885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024886 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024887 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024889 }
24890 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024893 return NULL;
24894 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024895 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024896 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024897 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024898 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024899 )
24900 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024901 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024902 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024903 goto done;
24904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024905 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024906 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024909 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024910 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024911 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024912 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024913}
24914
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024915void *
24916_PyPegen_parse(Parser *p)
24917{
24918 // Initialize keywords
24919 p->keywords = reserved_keywords;
24920 p->n_keyword_lists = n_keyword_lists;
24921
24922 // Run parser
24923 void *result = NULL;
24924 if (p->start_rule == Py_file_input) {
24925 result = file_rule(p);
24926 } else if (p->start_rule == Py_single_input) {
24927 result = interactive_rule(p);
24928 } else if (p->start_rule == Py_eval_input) {
24929 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024930 } else if (p->start_rule == Py_func_type_input) {
24931 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024932 } else if (p->start_rule == Py_fstring_input) {
24933 result = fstring_rule(p);
24934 }
24935
24936 return result;
24937}
24938
24939// The end