blob: 48a2443474684850597e14d6620c59bb6a91113c [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);
3463 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003464 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003465 _resmark = p->mark;
3466 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003468 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003469 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003470 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003471}
3472static expr_ty
3473dotted_name_raw(Parser *p)
3474{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003475 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003476 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003478 return NULL;
3479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003480 expr_ty _res = NULL;
3481 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003482 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003484 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003485 return NULL;
3486 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003487 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 +01003488 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003489 expr_ty a;
3490 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003491 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003492 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003493 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003494 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003495 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003496 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003497 )
3498 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003499 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 +01003500 _res = _PyPegen_join_names_with_dot ( p , a , b );
3501 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003502 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003503 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003504 return NULL;
3505 }
3506 goto done;
3507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003508 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003509 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003511 }
3512 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003513 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003514 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003515 return NULL;
3516 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003517 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003518 expr_ty name_var;
3519 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003520 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003521 )
3522 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003523 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003524 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003525 goto done;
3526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003527 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003528 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003531 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003532 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003533 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003534 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003535}
3536
3537// if_stmt:
3538// | 'if' named_expression ':' block elif_stmt
3539// | 'if' named_expression ':' block else_block?
3540static stmt_ty
3541if_stmt_rule(Parser *p)
3542{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003543 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003546 return NULL;
3547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003548 stmt_ty _res = NULL;
3549 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003550 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3551 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003553 return NULL;
3554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003555 int _start_lineno = p->tokens[_mark]->lineno;
3556 UNUSED(_start_lineno); // Only used by EXTRA macro
3557 int _start_col_offset = p->tokens[_mark]->col_offset;
3558 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003559 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003562 return NULL;
3563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003564 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 +01003565 Token * _keyword;
3566 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003567 expr_ty a;
3568 asdl_seq* b;
3569 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003570 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003571 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003573 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003574 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003575 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003576 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003577 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003578 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003579 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003580 )
3581 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003582 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 +01003583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3584 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003586 return NULL;
3587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003588 int _end_lineno = _token->end_lineno;
3589 UNUSED(_end_lineno); // Only used by EXTRA macro
3590 int _end_col_offset = _token->end_col_offset;
3591 UNUSED(_end_col_offset); // Only used by EXTRA macro
3592 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3593 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003594 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003596 return NULL;
3597 }
3598 goto done;
3599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003600 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003601 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003603 }
3604 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003606 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003607 return NULL;
3608 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003609 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 +01003610 Token * _keyword;
3611 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003612 expr_ty a;
3613 asdl_seq* b;
3614 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003615 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003616 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003618 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003620 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003621 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003622 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003624 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003625 )
3626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003627 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 +01003628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3629 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003631 return NULL;
3632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003633 int _end_lineno = _token->end_lineno;
3634 UNUSED(_end_lineno); // Only used by EXTRA macro
3635 int _end_col_offset = _token->end_col_offset;
3636 UNUSED(_end_col_offset); // Only used by EXTRA macro
3637 _res = _Py_If ( a , b , c , EXTRA );
3638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003641 return NULL;
3642 }
3643 goto done;
3644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003646 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003649 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003650 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003651 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003652 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003653}
3654
3655// elif_stmt:
3656// | 'elif' named_expression ':' block elif_stmt
3657// | 'elif' named_expression ':' block else_block?
3658static stmt_ty
3659elif_stmt_rule(Parser *p)
3660{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003661 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003663 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003664 return NULL;
3665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003666 stmt_ty _res = NULL;
3667 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003668 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003671 return NULL;
3672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003673 int _start_lineno = p->tokens[_mark]->lineno;
3674 UNUSED(_start_lineno); // Only used by EXTRA macro
3675 int _start_col_offset = p->tokens[_mark]->col_offset;
3676 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003677 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003678 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003679 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003680 return NULL;
3681 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003682 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 +01003683 Token * _keyword;
3684 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003685 expr_ty a;
3686 asdl_seq* b;
3687 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003688 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003689 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003691 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003692 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003693 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003694 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003695 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003696 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003697 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003698 )
3699 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003700 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 +01003701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3702 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003703 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003704 return NULL;
3705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003706 int _end_lineno = _token->end_lineno;
3707 UNUSED(_end_lineno); // Only used by EXTRA macro
3708 int _end_col_offset = _token->end_col_offset;
3709 UNUSED(_end_col_offset); // Only used by EXTRA macro
3710 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3711 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003712 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003714 return NULL;
3715 }
3716 goto done;
3717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003718 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003719 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003721 }
3722 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003725 return NULL;
3726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003727 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 +01003728 Token * _keyword;
3729 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003730 expr_ty a;
3731 asdl_seq* b;
3732 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003733 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003734 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003736 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003738 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003739 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003740 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003741 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003742 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003743 )
3744 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003745 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 +01003746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3747 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003749 return NULL;
3750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003751 int _end_lineno = _token->end_lineno;
3752 UNUSED(_end_lineno); // Only used by EXTRA macro
3753 int _end_col_offset = _token->end_col_offset;
3754 UNUSED(_end_col_offset); // Only used by EXTRA macro
3755 _res = _Py_If ( a , b , c , EXTRA );
3756 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003757 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003759 return NULL;
3760 }
3761 goto done;
3762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003764 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003767 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003768 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003769 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003770 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003771}
3772
3773// else_block: 'else' ':' block
3774static asdl_seq*
3775else_block_rule(Parser *p)
3776{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003777 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003778 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003780 return NULL;
3781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003782 asdl_seq* _res = NULL;
3783 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003784 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003786 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003787 return NULL;
3788 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003789 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003790 Token * _keyword;
3791 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003792 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003793 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003794 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003795 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003796 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003798 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003799 )
3800 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003801 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 +01003802 _res = b;
3803 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003804 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003805 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003806 return NULL;
3807 }
3808 goto done;
3809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003810 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003811 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003814 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003815 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003816 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003817 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003818}
3819
3820// while_stmt: 'while' named_expression ':' block else_block?
3821static stmt_ty
3822while_stmt_rule(Parser *p)
3823{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003824 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003825 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003827 return NULL;
3828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003829 stmt_ty _res = NULL;
3830 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003831 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3832 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003834 return NULL;
3835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003836 int _start_lineno = p->tokens[_mark]->lineno;
3837 UNUSED(_start_lineno); // Only used by EXTRA macro
3838 int _start_col_offset = p->tokens[_mark]->col_offset;
3839 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003840 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003843 return NULL;
3844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003845 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 +01003846 Token * _keyword;
3847 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003848 expr_ty a;
3849 asdl_seq* b;
3850 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003851 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003852 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003854 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003855 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003856 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003858 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003860 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003861 )
3862 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003863 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 +01003864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3865 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003867 return NULL;
3868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003869 int _end_lineno = _token->end_lineno;
3870 UNUSED(_end_lineno); // Only used by EXTRA macro
3871 int _end_col_offset = _token->end_col_offset;
3872 UNUSED(_end_col_offset); // Only used by EXTRA macro
3873 _res = _Py_While ( a , b , c , EXTRA );
3874 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003875 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003877 return NULL;
3878 }
3879 goto done;
3880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003881 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003882 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003885 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003886 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003887 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003888 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003889}
3890
Guido van Rossumc001c092020-04-30 12:12:19 -07003891// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003892// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3893// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3894// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003895static stmt_ty
3896for_stmt_rule(Parser *p)
3897{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003898 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003901 return NULL;
3902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003903 stmt_ty _res = NULL;
3904 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003905 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3906 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003907 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003908 return NULL;
3909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003910 int _start_lineno = p->tokens[_mark]->lineno;
3911 UNUSED(_start_lineno); // Only used by EXTRA macro
3912 int _start_col_offset = p->tokens[_mark]->col_offset;
3913 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003914 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003915 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003916 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003917 return NULL;
3918 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003919 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?"));
3920 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003921 Token * _keyword;
3922 Token * _keyword_1;
3923 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003924 asdl_seq* b;
3925 void *el;
3926 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003927 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003928 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003929 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003930 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003931 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003932 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003933 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003934 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003935 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003936 (_cut_var = 1)
3937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003938 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003939 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003940 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003941 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003942 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003943 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003944 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003945 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003946 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003947 )
3948 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003949 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 +01003950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3951 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003952 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003953 return NULL;
3954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003955 int _end_lineno = _token->end_lineno;
3956 UNUSED(_end_lineno); // Only used by EXTRA macro
3957 int _end_col_offset = _token->end_col_offset;
3958 UNUSED(_end_col_offset); // Only used by EXTRA macro
3959 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3960 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003961 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003962 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003963 return NULL;
3964 }
3965 goto done;
3966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003967 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003968 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3970 if (_cut_var) {
3971 D(p->level--);
3972 return NULL;
3973 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003974 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003975 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003977 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003978 return NULL;
3979 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003980 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?"));
3981 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003982 Token * _keyword;
3983 Token * _keyword_1;
3984 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003985 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003986 asdl_seq* b;
3987 void *el;
3988 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003989 expr_ty t;
3990 void *tc;
3991 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003992 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003993 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003994 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003996 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003997 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003998 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003999 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004000 (_cut_var = 1)
4001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004002 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004003 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004004 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004005 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004006 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004007 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004008 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004010 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004011 )
4012 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004013 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 +01004014 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4015 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004017 return NULL;
4018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004019 int _end_lineno = _token->end_lineno;
4020 UNUSED(_end_lineno); // Only used by EXTRA macro
4021 int _end_col_offset = _token->end_col_offset;
4022 UNUSED(_end_col_offset); // Only used by EXTRA macro
4023 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4024 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004025 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004026 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004027 return NULL;
4028 }
4029 goto done;
4030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004031 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004032 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4034 if (_cut_var) {
4035 D(p->level--);
4036 return NULL;
4037 }
4038 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02004039 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004040 if (p->error_indicator) {
4041 D(p->level--);
4042 return NULL;
4043 }
4044 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4045 void *invalid_for_target_var;
4046 if (
4047 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4048 )
4049 {
4050 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4051 _res = invalid_for_target_var;
4052 goto done;
4053 }
4054 p->mark = _mark;
4055 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004058 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004059 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004060 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004061 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004062}
4063
4064// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004065// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004066// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004067// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004068// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004069static stmt_ty
4070with_stmt_rule(Parser *p)
4071{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004072 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004075 return NULL;
4076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004077 stmt_ty _res = NULL;
4078 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004079 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4080 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004082 return NULL;
4083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004084 int _start_lineno = p->tokens[_mark]->lineno;
4085 UNUSED(_start_lineno); // Only used by EXTRA macro
4086 int _start_col_offset = p->tokens[_mark]->col_offset;
4087 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004088 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004090 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004091 return NULL;
4092 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004093 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 +01004094 Token * _keyword;
4095 Token * _literal;
4096 Token * _literal_1;
4097 Token * _literal_2;
4098 void *_opt_var;
4099 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004100 asdl_seq * a;
4101 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004102 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004103 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004104 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004105 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004106 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004107 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004108 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004109 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004110 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004111 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004112 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004113 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004115 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004116 )
4117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004118 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 +01004119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4120 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004122 return NULL;
4123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004124 int _end_lineno = _token->end_lineno;
4125 UNUSED(_end_lineno); // Only used by EXTRA macro
4126 int _end_col_offset = _token->end_col_offset;
4127 UNUSED(_end_col_offset); // Only used by EXTRA macro
4128 _res = _Py_With ( a , b , NULL , EXTRA );
4129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004132 return NULL;
4133 }
4134 goto done;
4135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004137 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004139 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004140 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004143 return NULL;
4144 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004145 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 +01004146 Token * _keyword;
4147 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004148 asdl_seq * a;
4149 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004150 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004151 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004152 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004153 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004154 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004155 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004156 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004157 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004158 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004159 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004160 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004161 )
4162 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004163 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 +01004164 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4165 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004166 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004167 return NULL;
4168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004169 int _end_lineno = _token->end_lineno;
4170 UNUSED(_end_lineno); // Only used by EXTRA macro
4171 int _end_col_offset = _token->end_col_offset;
4172 UNUSED(_end_col_offset); // Only used by EXTRA macro
4173 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4174 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004175 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004176 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004177 return NULL;
4178 }
4179 goto done;
4180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004181 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004182 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004184 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004185 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004187 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004188 return NULL;
4189 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004190 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 +01004191 Token * _keyword;
4192 Token * _literal;
4193 Token * _literal_1;
4194 Token * _literal_2;
4195 void *_opt_var;
4196 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004197 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004198 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004199 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004200 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004201 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004202 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004203 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004204 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004205 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004206 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004207 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004208 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004209 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004210 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004211 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004212 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004213 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004214 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004215 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004216 )
4217 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004218 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 +01004219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4220 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004221 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004222 return NULL;
4223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004224 int _end_lineno = _token->end_lineno;
4225 UNUSED(_end_lineno); // Only used by EXTRA macro
4226 int _end_col_offset = _token->end_col_offset;
4227 UNUSED(_end_col_offset); // Only used by EXTRA macro
4228 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4229 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004231 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004232 return NULL;
4233 }
4234 goto done;
4235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004237 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004239 }
4240 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004243 return NULL;
4244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004245 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 +01004246 Token * _keyword;
4247 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004248 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004249 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004250 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004251 void *tc;
4252 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004253 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004254 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004255 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004257 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004258 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004259 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004260 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004261 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004262 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004263 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004264 )
4265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004266 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 +01004267 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4268 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004269 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004270 return NULL;
4271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004272 int _end_lineno = _token->end_lineno;
4273 UNUSED(_end_lineno); // Only used by EXTRA macro
4274 int _end_col_offset = _token->end_col_offset;
4275 UNUSED(_end_col_offset); // Only used by EXTRA macro
4276 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4277 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004278 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004280 return NULL;
4281 }
4282 goto done;
4283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004284 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004285 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004288 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004289 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004290 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004291 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004292}
4293
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004294// with_item:
4295// | expression 'as' star_target &(',' | ')' | ':')
4296// | invalid_with_item
4297// | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004298static withitem_ty
4299with_item_rule(Parser *p)
4300{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004301 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004303 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004304 return NULL;
4305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004306 withitem_ty _res = NULL;
4307 int _mark = p->mark;
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004308 { // expression 'as' star_target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004310 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004311 return NULL;
4312 }
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004313 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 +03004314 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004315 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004316 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004317 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004318 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004319 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004320 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4321 &&
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004322 (t = star_target_rule(p)) // star_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004323 &&
4324 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004325 )
4326 {
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004327 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 +03004328 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004332 return NULL;
4333 }
4334 goto done;
4335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004336 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004337 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004339 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02004340 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004341 if (p->error_indicator) {
4342 D(p->level--);
4343 return NULL;
4344 }
4345 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4346 void *invalid_with_item_var;
4347 if (
4348 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4349 )
4350 {
4351 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4352 _res = invalid_with_item_var;
4353 goto done;
4354 }
4355 p->mark = _mark;
4356 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4358 }
4359 { // expression
4360 if (p->error_indicator) {
4361 D(p->level--);
4362 return NULL;
4363 }
4364 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4365 expr_ty e;
4366 if (
4367 (e = expression_rule(p)) // expression
4368 )
4369 {
4370 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4371 _res = _Py_withitem ( e , NULL , p -> arena );
4372 if (_res == NULL && PyErr_Occurred()) {
4373 p->error_indicator = 1;
4374 D(p->level--);
4375 return NULL;
4376 }
4377 goto done;
4378 }
4379 p->mark = _mark;
4380 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004383 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004384 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004385 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004386 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004387}
4388
4389// try_stmt:
4390// | 'try' ':' block finally_block
4391// | 'try' ':' block except_block+ else_block? finally_block?
4392static stmt_ty
4393try_stmt_rule(Parser *p)
4394{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004395 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004396 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004398 return NULL;
4399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004400 stmt_ty _res = NULL;
4401 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004402 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4403 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004405 return NULL;
4406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004407 int _start_lineno = p->tokens[_mark]->lineno;
4408 UNUSED(_start_lineno); // Only used by EXTRA macro
4409 int _start_col_offset = p->tokens[_mark]->col_offset;
4410 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004411 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004413 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004414 return NULL;
4415 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004416 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 +01004417 Token * _keyword;
4418 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004419 asdl_seq* b;
4420 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004421 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004422 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004423 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004424 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004426 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004427 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004428 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004429 )
4430 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004431 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 +01004432 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4433 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004434 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004435 return NULL;
4436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004437 int _end_lineno = _token->end_lineno;
4438 UNUSED(_end_lineno); // Only used by EXTRA macro
4439 int _end_col_offset = _token->end_col_offset;
4440 UNUSED(_end_col_offset); // Only used by EXTRA macro
4441 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4442 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004444 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004445 return NULL;
4446 }
4447 goto done;
4448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004450 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004452 }
4453 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004456 return NULL;
4457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004458 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 +01004459 Token * _keyword;
4460 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004461 asdl_seq* b;
4462 void *el;
4463 asdl_seq * ex;
4464 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004465 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004466 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004467 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004468 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004469 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004470 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004471 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004472 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004473 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004474 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004475 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004476 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004477 )
4478 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004479 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 +01004480 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4481 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004483 return NULL;
4484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004485 int _end_lineno = _token->end_lineno;
4486 UNUSED(_end_lineno); // Only used by EXTRA macro
4487 int _end_col_offset = _token->end_col_offset;
4488 UNUSED(_end_col_offset); // Only used by EXTRA macro
4489 _res = _Py_Try ( b , ex , el , f , EXTRA );
4490 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004491 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004492 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004493 return NULL;
4494 }
4495 goto done;
4496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004497 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004498 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004501 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004502 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004503 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004504 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004505}
4506
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004507// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004508static excepthandler_ty
4509except_block_rule(Parser *p)
4510{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004511 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004513 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004514 return NULL;
4515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004516 excepthandler_ty _res = NULL;
4517 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004521 return NULL;
4522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004523 int _start_lineno = p->tokens[_mark]->lineno;
4524 UNUSED(_start_lineno); // Only used by EXTRA macro
4525 int _start_col_offset = p->tokens[_mark]->col_offset;
4526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004527 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004530 return NULL;
4531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004532 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 +01004533 Token * _keyword;
4534 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004535 asdl_seq* b;
4536 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004537 void *t;
4538 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004539 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004540 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004541 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004542 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004543 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004544 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004545 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004546 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004547 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004548 )
4549 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004550 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 +01004551 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4552 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004553 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004554 return NULL;
4555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004556 int _end_lineno = _token->end_lineno;
4557 UNUSED(_end_lineno); // Only used by EXTRA macro
4558 int _end_col_offset = _token->end_col_offset;
4559 UNUSED(_end_col_offset); // Only used by EXTRA macro
4560 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4561 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004562 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004564 return NULL;
4565 }
4566 goto done;
4567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004568 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004569 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004571 }
4572 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004575 return NULL;
4576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004577 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004578 Token * _keyword;
4579 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004580 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004581 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004582 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004583 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004584 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004585 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004586 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004587 )
4588 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004589 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 +01004590 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4591 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004593 return NULL;
4594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004595 int _end_lineno = _token->end_lineno;
4596 UNUSED(_end_lineno); // Only used by EXTRA macro
4597 int _end_col_offset = _token->end_col_offset;
4598 UNUSED(_end_col_offset); // Only used by EXTRA macro
4599 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4600 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004601 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004603 return NULL;
4604 }
4605 goto done;
4606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004607 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004608 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004611 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004612 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004613 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004614 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004615}
4616
4617// finally_block: 'finally' ':' block
4618static asdl_seq*
4619finally_block_rule(Parser *p)
4620{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004621 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004623 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004624 return NULL;
4625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004626 asdl_seq* _res = NULL;
4627 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004628 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004629 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004630 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004631 return NULL;
4632 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004633 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004634 Token * _keyword;
4635 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004636 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004637 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004638 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004639 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004640 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004641 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004642 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004643 )
4644 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004645 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 +01004646 _res = a;
4647 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004648 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004650 return NULL;
4651 }
4652 goto done;
4653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004654 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004655 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004658 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004659 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004660 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004661 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004662}
4663
4664// return_stmt: 'return' star_expressions?
4665static stmt_ty
4666return_stmt_rule(Parser *p)
4667{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004668 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004669 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004671 return NULL;
4672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004673 stmt_ty _res = NULL;
4674 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004675 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4676 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004677 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004678 return NULL;
4679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004680 int _start_lineno = p->tokens[_mark]->lineno;
4681 UNUSED(_start_lineno); // Only used by EXTRA macro
4682 int _start_col_offset = p->tokens[_mark]->col_offset;
4683 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004684 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004685 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004686 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004687 return NULL;
4688 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004689 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 +01004690 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004691 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004692 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004693 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004694 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004695 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004696 )
4697 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004698 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 +01004699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4700 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004701 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004702 return NULL;
4703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004704 int _end_lineno = _token->end_lineno;
4705 UNUSED(_end_lineno); // Only used by EXTRA macro
4706 int _end_col_offset = _token->end_col_offset;
4707 UNUSED(_end_col_offset); // Only used by EXTRA macro
4708 _res = _Py_Return ( a , EXTRA );
4709 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004710 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004711 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004712 return NULL;
4713 }
4714 goto done;
4715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004716 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004717 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004720 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004721 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004722 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004723 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004724}
4725
4726// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4727static stmt_ty
4728raise_stmt_rule(Parser *p)
4729{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004730 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004731 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004732 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004733 return NULL;
4734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004735 stmt_ty _res = NULL;
4736 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004737 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4738 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004739 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004740 return NULL;
4741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004742 int _start_lineno = p->tokens[_mark]->lineno;
4743 UNUSED(_start_lineno); // Only used by EXTRA macro
4744 int _start_col_offset = p->tokens[_mark]->col_offset;
4745 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004746 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004747 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004748 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004749 return NULL;
4750 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004751 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 +01004752 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004753 expr_ty a;
4754 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004755 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004756 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004757 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004758 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004759 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004760 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004761 )
4762 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004763 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 +01004764 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4765 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004766 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004767 return NULL;
4768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004769 int _end_lineno = _token->end_lineno;
4770 UNUSED(_end_lineno); // Only used by EXTRA macro
4771 int _end_col_offset = _token->end_col_offset;
4772 UNUSED(_end_col_offset); // Only used by EXTRA macro
4773 _res = _Py_Raise ( a , b , EXTRA );
4774 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004775 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004777 return NULL;
4778 }
4779 goto done;
4780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004781 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004782 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004784 }
4785 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004787 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004788 return NULL;
4789 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004790 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004791 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004792 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004793 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004794 )
4795 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004796 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004797 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4798 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004800 return NULL;
4801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004802 int _end_lineno = _token->end_lineno;
4803 UNUSED(_end_lineno); // Only used by EXTRA macro
4804 int _end_col_offset = _token->end_col_offset;
4805 UNUSED(_end_col_offset); // Only used by EXTRA macro
4806 _res = _Py_Raise ( NULL , NULL , EXTRA );
4807 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004808 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004809 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004810 return NULL;
4811 }
4812 goto done;
4813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004814 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004815 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004818 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004819 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004820 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004821 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004822}
4823
4824// function_def: decorators function_def_raw | function_def_raw
4825static stmt_ty
4826function_def_rule(Parser *p)
4827{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004828 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004829 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004831 return NULL;
4832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004833 stmt_ty _res = NULL;
4834 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004835 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004837 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004838 return NULL;
4839 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004840 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 +01004841 asdl_seq* d;
4842 stmt_ty f;
4843 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004844 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004845 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004846 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004847 )
4848 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004849 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 +01004850 _res = _PyPegen_function_def_decorators ( p , d , f );
4851 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004852 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004853 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004854 return NULL;
4855 }
4856 goto done;
4857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004858 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004859 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004861 }
4862 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004863 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004864 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004865 return NULL;
4866 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004867 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 +01004868 stmt_ty function_def_raw_var;
4869 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004870 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004871 )
4872 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004873 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 +01004874 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004875 goto done;
4876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004877 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004878 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004881 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004882 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004883 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004884 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004885}
4886
Guido van Rossumc001c092020-04-30 12:12:19 -07004887// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004888// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4889// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004890static stmt_ty
4891function_def_raw_rule(Parser *p)
4892{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004893 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004895 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004896 return NULL;
4897 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004898 stmt_ty _res = NULL;
4899 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004900 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4901 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004903 return NULL;
4904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004905 int _start_lineno = p->tokens[_mark]->lineno;
4906 UNUSED(_start_lineno); // Only used by EXTRA macro
4907 int _start_col_offset = p->tokens[_mark]->col_offset;
4908 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004909 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004912 return NULL;
4913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004914 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 +01004915 Token * _keyword;
4916 Token * _literal;
4917 Token * _literal_1;
4918 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004919 void *a;
4920 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004921 expr_ty n;
4922 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004923 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004924 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004925 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004926 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004927 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004928 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004929 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004930 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004931 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004932 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004933 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004934 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004935 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004936 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004937 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004938 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004939 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004940 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004941 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004942 )
4943 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004944 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 +01004945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4946 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004947 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004948 return NULL;
4949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004950 int _end_lineno = _token->end_lineno;
4951 UNUSED(_end_lineno); // Only used by EXTRA macro
4952 int _end_col_offset = _token->end_col_offset;
4953 UNUSED(_end_col_offset); // Only used by EXTRA macro
4954 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4955 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004957 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004958 return NULL;
4959 }
4960 goto done;
4961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004962 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004963 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004965 }
4966 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004967 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004968 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004969 return NULL;
4970 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004971 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 +01004972 Token * _keyword;
4973 Token * _literal;
4974 Token * _literal_1;
4975 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004976 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004977 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004978 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004979 expr_ty n;
4980 void *params;
4981 void *tc;
4982 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004983 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004984 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004985 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004986 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004987 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004988 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004989 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004990 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004991 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004992 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004993 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004994 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004995 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004996 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004997 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004998 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004999 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005000 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005001 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005002 )
5003 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005004 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 +01005005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5006 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005007 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005008 return NULL;
5009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005010 int _end_lineno = _token->end_lineno;
5011 UNUSED(_end_lineno); // Only used by EXTRA macro
5012 int _end_col_offset = _token->end_col_offset;
5013 UNUSED(_end_col_offset); // Only used by EXTRA macro
5014 _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 ) );
5015 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005016 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005017 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005018 return NULL;
5019 }
5020 goto done;
5021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005022 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005023 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005026 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005027 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005028 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005029 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005030}
5031
Guido van Rossumc001c092020-04-30 12:12:19 -07005032// func_type_comment:
5033// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5034// | invalid_double_type_comments
5035// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005036static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005037func_type_comment_rule(Parser *p)
5038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005039 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005041 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005042 return NULL;
5043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005044 Token* _res = NULL;
5045 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005046 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005049 return NULL;
5050 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005051 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 +01005052 Token * newline_var;
5053 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005054 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005055 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005056 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005057 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005058 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005059 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005060 )
5061 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005062 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 +01005063 _res = t;
5064 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005065 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005066 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005067 return NULL;
5068 }
5069 goto done;
5070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005071 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005072 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005074 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005075 if (p->call_invalid_rules) { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005076 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005077 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005078 return NULL;
5079 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005080 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 -07005081 void *invalid_double_type_comments_var;
5082 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005083 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005084 )
5085 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005086 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 +01005087 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005088 goto done;
5089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005090 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005091 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005093 }
5094 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005095 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005096 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005097 return NULL;
5098 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005099 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 +01005100 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005101 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005102 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005103 )
5104 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005105 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 +01005106 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005107 goto done;
5108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005109 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005110 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005113 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005114 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005115 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005116 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005117}
5118
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005119// params: invalid_parameters | parameters
5120static arguments_ty
5121params_rule(Parser *p)
5122{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005123 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005124 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005126 return NULL;
5127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005128 arguments_ty _res = NULL;
5129 int _mark = p->mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005130 if (p->call_invalid_rules) { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005131 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005132 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005133 return NULL;
5134 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005135 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005136 void *invalid_parameters_var;
5137 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005138 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005139 )
5140 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005141 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005142 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005143 goto done;
5144 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005145 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005146 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005148 }
5149 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005150 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005151 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005152 return NULL;
5153 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005154 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005155 arguments_ty parameters_var;
5156 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005157 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005158 )
5159 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005160 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005161 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005162 goto done;
5163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005164 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005165 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005168 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005169 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005170 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005171 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005172}
5173
5174// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005175// | slash_no_default param_no_default* param_with_default* star_etc?
5176// | slash_with_default param_with_default* star_etc?
5177// | param_no_default+ param_with_default* star_etc?
5178// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005179// | star_etc
5180static arguments_ty
5181parameters_rule(Parser *p)
5182{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005183 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005185 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005186 return NULL;
5187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005188 arguments_ty _res = NULL;
5189 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005190 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005193 return NULL;
5194 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005195 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 +01005196 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005197 asdl_seq * b;
5198 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005199 void *d;
5200 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005201 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005202 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005203 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005205 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005206 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005207 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005208 )
5209 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005210 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 +01005211 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5212 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005213 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005215 return NULL;
5216 }
5217 goto done;
5218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005219 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005220 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5221 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 +01005222 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005223 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005225 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005226 return NULL;
5227 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005228 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 +01005229 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005230 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005231 void *c;
5232 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005233 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005234 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005235 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005236 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005237 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005238 )
5239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005240 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 +01005241 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5242 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005243 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005244 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005245 return NULL;
5246 }
5247 goto done;
5248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005249 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005250 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005252 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005253 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005255 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005256 return NULL;
5257 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005258 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 -07005259 asdl_seq * a;
5260 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005261 void *c;
5262 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005263 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005264 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005265 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005266 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005267 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005268 )
5269 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005270 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 +01005271 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5272 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005273 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005275 return NULL;
5276 }
5277 goto done;
5278 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005279 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005280 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005282 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005283 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005284 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005285 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005286 return NULL;
5287 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005288 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 -07005289 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005290 void *b;
5291 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005292 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005293 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005294 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005295 )
5296 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005297 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 +01005298 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5299 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005300 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005302 return NULL;
5303 }
5304 goto done;
5305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005307 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005309 }
5310 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005313 return NULL;
5314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005315 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005316 StarEtc* a;
5317 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005318 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005319 )
5320 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005321 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005322 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5323 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005324 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005325 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005326 return NULL;
5327 }
5328 goto done;
5329 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005330 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005331 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005334 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005335 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005336 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005337 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005338}
5339
Guido van Rossumc001c092020-04-30 12:12:19 -07005340// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005341static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005342slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005343{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005344 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005345 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005346 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005347 return NULL;
5348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005349 asdl_seq* _res = NULL;
5350 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005351 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005353 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005354 return NULL;
5355 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005356 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 +01005357 Token * _literal;
5358 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005359 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005360 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005361 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005362 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005363 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005364 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005365 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005366 )
5367 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005368 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 +01005369 _res = a;
5370 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005371 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005372 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005373 return NULL;
5374 }
5375 goto done;
5376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005377 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005378 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005380 }
5381 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005382 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005383 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005384 return NULL;
5385 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005386 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 +01005387 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005388 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005389 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005390 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005391 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005392 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005393 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005394 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005395 )
5396 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005397 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 +01005398 _res = a;
5399 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005402 return NULL;
5403 }
5404 goto done;
5405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005406 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005407 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005410 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005411 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005412 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005413 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005414}
5415
Guido van Rossumc001c092020-04-30 12:12:19 -07005416// slash_with_default:
5417// | param_no_default* param_with_default+ '/' ','
5418// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005419static SlashWithDefault*
5420slash_with_default_rule(Parser *p)
5421{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005422 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005423 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005425 return NULL;
5426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005427 SlashWithDefault* _res = NULL;
5428 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005429 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005432 return NULL;
5433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005434 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 +01005435 Token * _literal;
5436 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005437 asdl_seq * a;
5438 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005439 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005440 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005441 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005442 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005444 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005445 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005446 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005447 )
5448 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005449 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 +01005450 _res = _PyPegen_slash_with_default ( p , a , b );
5451 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005452 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005453 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005454 return NULL;
5455 }
5456 goto done;
5457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005458 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005459 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005461 }
5462 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005463 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005464 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005465 return NULL;
5466 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005467 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 +01005468 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005469 asdl_seq * a;
5470 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005471 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005472 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005473 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005474 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005475 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005476 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005477 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005478 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005479 )
5480 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005481 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 +01005482 _res = _PyPegen_slash_with_default ( p , a , b );
5483 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005484 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005485 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005486 return NULL;
5487 }
5488 goto done;
5489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005490 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005491 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005494 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005495 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005496 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005497 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005498}
5499
5500// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005501// | '*' param_no_default param_maybe_default* kwds?
5502// | '*' ',' param_maybe_default+ kwds?
5503// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005504// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005505static StarEtc*
5506star_etc_rule(Parser *p)
5507{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005508 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005510 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005511 return NULL;
5512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005513 StarEtc* _res = NULL;
5514 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005515 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005516 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005517 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005518 return NULL;
5519 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005520 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 +01005521 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005522 arg_ty a;
5523 asdl_seq * b;
5524 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005525 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005526 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005527 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005528 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005529 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005530 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005531 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005532 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005533 )
5534 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005535 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 +01005536 _res = _PyPegen_star_etc ( p , a , b , c );
5537 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005538 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005539 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005540 return NULL;
5541 }
5542 goto done;
5543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005544 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005545 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005547 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005548 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005549 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005550 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005551 return NULL;
5552 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005553 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 +01005554 Token * _literal;
5555 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005556 asdl_seq * b;
5557 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005558 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005559 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005560 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005561 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005562 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005563 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005564 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005565 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005566 )
5567 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005568 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 +01005569 _res = _PyPegen_star_etc ( p , NULL , b , c );
5570 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005571 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005572 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005573 return NULL;
5574 }
5575 goto done;
5576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005577 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005578 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005580 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005581 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005583 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005584 return NULL;
5585 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005586 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005587 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005588 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005589 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005590 )
5591 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005592 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005593 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5594 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005597 return NULL;
5598 }
5599 goto done;
5600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005601 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005602 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005604 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005605 if (p->call_invalid_rules) { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005608 return NULL;
5609 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005610 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 +03005611 void *invalid_star_etc_var;
5612 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005613 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005614 )
5615 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005616 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 +01005617 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005618 goto done;
5619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005620 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005621 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005624 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005625 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005626 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005627 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005628}
5629
Guido van Rossumc001c092020-04-30 12:12:19 -07005630// kwds: '**' param_no_default
5631static arg_ty
5632kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005633{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005634 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005635 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005637 return NULL;
5638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005639 arg_ty _res = NULL;
5640 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005641 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005644 return NULL;
5645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005646 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005647 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005648 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005649 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005650 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005651 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005652 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005653 )
5654 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005655 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 +01005656 _res = a;
5657 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005658 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005659 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005660 return NULL;
5661 }
5662 goto done;
5663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005664 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005665 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005668 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005669 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005670 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005671 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005672}
5673
5674// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5675static arg_ty
5676param_no_default_rule(Parser *p)
5677{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005678 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005679 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005680 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005681 return NULL;
5682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005683 arg_ty _res = NULL;
5684 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005685 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005686 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005687 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005688 return NULL;
5689 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005690 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 +01005691 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005692 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005693 void *tc;
5694 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005695 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005696 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005697 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005698 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005699 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005700 )
5701 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005702 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 +01005703 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5704 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005705 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005707 return NULL;
5708 }
5709 goto done;
5710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005711 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005712 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005714 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005715 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005717 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005718 return NULL;
5719 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005720 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 -07005721 arg_ty a;
5722 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005723 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005724 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005725 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005726 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005727 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005728 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005729 )
5730 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005731 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 +01005732 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5733 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005734 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005736 return NULL;
5737 }
5738 goto done;
5739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005740 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005741 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005744 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005745 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005747 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005748}
5749
Guido van Rossumc001c092020-04-30 12:12:19 -07005750// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005751static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005752param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005754 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005757 return NULL;
5758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005759 NameDefaultPair* _res = NULL;
5760 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005761 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005763 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005764 return NULL;
5765 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005766 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 +01005767 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005768 arg_ty a;
5769 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005770 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005771 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005772 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005773 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005774 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005775 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005776 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005777 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005778 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005779 )
5780 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005781 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 +01005782 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5783 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005784 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005785 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005786 return NULL;
5787 }
5788 goto done;
5789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005790 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005791 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005793 }
5794 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005796 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005797 return NULL;
5798 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005799 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 -07005800 arg_ty a;
5801 expr_ty c;
5802 void *tc;
5803 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005804 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005806 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005807 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005808 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005810 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005811 )
5812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005813 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 +01005814 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5815 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005816 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005817 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005818 return NULL;
5819 }
5820 goto done;
5821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005822 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005823 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005826 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005827 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005828 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005829 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005830}
5831
Guido van Rossumc001c092020-04-30 12:12:19 -07005832// param_maybe_default:
5833// | param default? ',' TYPE_COMMENT?
5834// | param default? TYPE_COMMENT? &')'
5835static NameDefaultPair*
5836param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005837{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005838 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005841 return NULL;
5842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005843 NameDefaultPair* _res = NULL;
5844 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005845 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005848 return NULL;
5849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005850 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 +01005851 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005852 arg_ty a;
5853 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005854 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005855 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005856 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005858 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005859 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005860 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005862 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005863 )
5864 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005865 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 +01005866 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5867 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005868 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005869 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005870 return NULL;
5871 }
5872 goto done;
5873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005874 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005875 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005877 }
5878 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005879 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005880 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005881 return NULL;
5882 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005883 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 -07005884 arg_ty a;
5885 void *c;
5886 void *tc;
5887 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005888 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005890 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005891 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005892 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005893 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005894 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005895 )
5896 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005897 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 +01005898 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5899 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005900 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005902 return NULL;
5903 }
5904 goto done;
5905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005906 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005907 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005910 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005911 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005912 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005913 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005914}
5915
Guido van Rossumc001c092020-04-30 12:12:19 -07005916// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005917static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005918param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005919{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005920 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005922 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005923 return NULL;
5924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005925 arg_ty _res = NULL;
5926 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005927 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5928 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005930 return NULL;
5931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005932 int _start_lineno = p->tokens[_mark]->lineno;
5933 UNUSED(_start_lineno); // Only used by EXTRA macro
5934 int _start_col_offset = p->tokens[_mark]->col_offset;
5935 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005936 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005939 return NULL;
5940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005941 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005942 expr_ty a;
5943 void *b;
5944 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005945 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005946 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005947 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005948 )
5949 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005950 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5952 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005954 return NULL;
5955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005956 int _end_lineno = _token->end_lineno;
5957 UNUSED(_end_lineno); // Only used by EXTRA macro
5958 int _end_col_offset = _token->end_col_offset;
5959 UNUSED(_end_col_offset); // Only used by EXTRA macro
5960 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5961 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005962 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005963 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005964 return NULL;
5965 }
5966 goto done;
5967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005969 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005972 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005973 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005974 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005975 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005976}
5977
Guido van Rossumc001c092020-04-30 12:12:19 -07005978// annotation: ':' expression
5979static expr_ty
5980annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005981{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005982 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005984 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005985 return NULL;
5986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005987 expr_ty _res = NULL;
5988 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005989 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005992 return NULL;
5993 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005994 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005995 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005996 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005997 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005998 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006000 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006001 )
6002 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006003 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006004 _res = a;
6005 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006006 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006007 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006008 return NULL;
6009 }
6010 goto done;
6011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006012 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006013 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006016 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006017 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006018 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006019 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006020}
6021
Guido van Rossumc001c092020-04-30 12:12:19 -07006022// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006023static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006024default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006025{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006026 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006027 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006028 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006029 return NULL;
6030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006031 expr_ty _res = NULL;
6032 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006033 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006034 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006035 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006036 return NULL;
6037 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006038 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006039 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006040 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006041 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006042 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006043 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006044 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006045 )
6046 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006047 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006048 _res = a;
6049 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006050 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006051 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006052 return NULL;
6053 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006054 goto done;
6055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006056 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006057 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006060 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006061 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006062 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006063 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006064}
6065
6066// decorators: (('@' named_expression NEWLINE))+
6067static asdl_seq*
6068decorators_rule(Parser *p)
6069{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006070 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006072 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006073 return NULL;
6074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006075 asdl_seq* _res = NULL;
6076 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006077 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006078 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006079 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006080 return NULL;
6081 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006082 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006083 asdl_seq * a;
6084 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006085 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006086 )
6087 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006088 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 +01006089 _res = a;
6090 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006091 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006092 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006093 return NULL;
6094 }
6095 goto done;
6096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006097 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006098 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006101 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006102 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006103 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006104 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006105}
6106
6107// class_def: decorators class_def_raw | class_def_raw
6108static stmt_ty
6109class_def_rule(Parser *p)
6110{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006111 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006114 return NULL;
6115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006116 stmt_ty _res = NULL;
6117 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006118 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006121 return NULL;
6122 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006123 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 +01006124 asdl_seq* a;
6125 stmt_ty b;
6126 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006127 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006128 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006129 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006130 )
6131 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006132 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 +01006133 _res = _PyPegen_class_def_decorators ( p , a , b );
6134 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006135 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006136 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006137 return NULL;
6138 }
6139 goto done;
6140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006141 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006142 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006144 }
6145 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006146 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006147 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006148 return NULL;
6149 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006150 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 +01006151 stmt_ty class_def_raw_var;
6152 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006153 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006154 )
6155 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006156 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 +01006157 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006158 goto done;
6159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006160 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006161 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006164 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006165 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006166 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006167 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006168}
6169
6170// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6171static stmt_ty
6172class_def_raw_rule(Parser *p)
6173{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006174 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006176 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006177 return NULL;
6178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006179 stmt_ty _res = NULL;
6180 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006181 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6182 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006183 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006184 return NULL;
6185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006186 int _start_lineno = p->tokens[_mark]->lineno;
6187 UNUSED(_start_lineno); // Only used by EXTRA macro
6188 int _start_col_offset = p->tokens[_mark]->col_offset;
6189 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006190 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006193 return NULL;
6194 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006195 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 +01006196 Token * _keyword;
6197 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006198 expr_ty a;
6199 void *b;
6200 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006201 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006202 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006203 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006204 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006205 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006206 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006207 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006208 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006209 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006210 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006211 )
6212 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006213 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 +01006214 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6215 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006217 return NULL;
6218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006219 int _end_lineno = _token->end_lineno;
6220 UNUSED(_end_lineno); // Only used by EXTRA macro
6221 int _end_col_offset = _token->end_col_offset;
6222 UNUSED(_end_col_offset); // Only used by EXTRA macro
6223 _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 );
6224 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006225 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006226 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006227 return NULL;
6228 }
6229 goto done;
6230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006231 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006232 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006235 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006236 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006237 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006238 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006239}
6240
6241// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6242static asdl_seq*
6243block_rule(Parser *p)
6244{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006245 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006246 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006247 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006248 return NULL;
6249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006250 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006251 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6252 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006253 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006255 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006256 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006257 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006258 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006259 return NULL;
6260 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006261 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 +01006262 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006263 Token * dedent_var;
6264 Token * indent_var;
6265 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006266 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006267 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006268 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006269 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006270 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006271 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006272 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006273 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006274 )
6275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006276 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 +01006277 _res = a;
6278 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006279 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006281 return NULL;
6282 }
6283 goto done;
6284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006285 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006286 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006288 }
6289 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006292 return NULL;
6293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006294 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006295 asdl_seq* simple_stmt_var;
6296 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006297 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006298 )
6299 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006300 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006301 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006302 goto done;
6303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006304 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006305 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006307 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02006308 if (p->call_invalid_rules) { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006310 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006311 return NULL;
6312 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006313 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006314 void *invalid_block_var;
6315 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006316 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 )
6318 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006319 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006320 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006321 goto done;
6322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006324 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006327 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006328 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006329 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006331 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006332}
6333
6334// expressions_list: ','.star_expression+ ','?
6335static asdl_seq*
6336expressions_list_rule(Parser *p)
6337{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006338 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006340 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006341 return NULL;
6342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006343 asdl_seq* _res = NULL;
6344 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006345 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006348 return NULL;
6349 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006350 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006351 void *_opt_var;
6352 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006353 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006354 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006355 (a = _gather_70_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006356 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006357 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006358 )
6359 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006360 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 +01006361 _res = a;
6362 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006363 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006364 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006365 return NULL;
6366 }
6367 goto done;
6368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006369 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006370 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006373 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006374 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006375 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006376 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006377}
6378
6379// star_expressions:
6380// | star_expression ((',' star_expression))+ ','?
6381// | star_expression ','
6382// | star_expression
6383static expr_ty
6384star_expressions_rule(Parser *p)
6385{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006386 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006389 return NULL;
6390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006391 expr_ty _res = NULL;
6392 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006393 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6394 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006396 return NULL;
6397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006398 int _start_lineno = p->tokens[_mark]->lineno;
6399 UNUSED(_start_lineno); // Only used by EXTRA macro
6400 int _start_col_offset = p->tokens[_mark]->col_offset;
6401 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006402 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006405 return NULL;
6406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006407 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 +01006408 void *_opt_var;
6409 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006410 expr_ty a;
6411 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006412 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006413 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006414 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006415 (b = _loop1_72_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006416 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006417 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006418 )
6419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006420 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 +01006421 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6422 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006423 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006424 return NULL;
6425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006426 int _end_lineno = _token->end_lineno;
6427 UNUSED(_end_lineno); // Only used by EXTRA macro
6428 int _end_col_offset = _token->end_col_offset;
6429 UNUSED(_end_col_offset); // Only used by EXTRA macro
6430 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6431 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006432 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006434 return NULL;
6435 }
6436 goto done;
6437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006438 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006439 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006441 }
6442 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006443 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006444 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006445 return NULL;
6446 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006447 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006448 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006449 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006450 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006451 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006452 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006453 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006454 )
6455 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006456 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 +01006457 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6458 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006460 return NULL;
6461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006462 int _end_lineno = _token->end_lineno;
6463 UNUSED(_end_lineno); // Only used by EXTRA macro
6464 int _end_col_offset = _token->end_col_offset;
6465 UNUSED(_end_col_offset); // Only used by EXTRA macro
6466 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6467 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006468 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006470 return NULL;
6471 }
6472 goto done;
6473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006475 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006477 }
6478 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006480 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006481 return NULL;
6482 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006483 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006484 expr_ty star_expression_var;
6485 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006486 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006487 )
6488 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006489 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 +01006490 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006491 goto done;
6492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006493 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006494 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006497 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006498 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006499 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006500 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006501}
6502
6503// star_expression: '*' bitwise_or | expression
6504static expr_ty
6505star_expression_rule(Parser *p)
6506{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006507 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006510 return NULL;
6511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006512 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006513 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6514 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006515 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006517 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006521 return NULL;
6522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006523 int _start_lineno = p->tokens[_mark]->lineno;
6524 UNUSED(_start_lineno); // Only used by EXTRA macro
6525 int _start_col_offset = p->tokens[_mark]->col_offset;
6526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006527 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006530 return NULL;
6531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006532 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006533 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006534 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006535 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006536 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006537 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006538 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006539 )
6540 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006541 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 +01006542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6543 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006545 return NULL;
6546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006547 int _end_lineno = _token->end_lineno;
6548 UNUSED(_end_lineno); // Only used by EXTRA macro
6549 int _end_col_offset = _token->end_col_offset;
6550 UNUSED(_end_col_offset); // Only used by EXTRA macro
6551 _res = _Py_Starred ( a , Load , EXTRA );
6552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006555 return NULL;
6556 }
6557 goto done;
6558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006560 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006562 }
6563 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006565 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006566 return NULL;
6567 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006568 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006569 expr_ty expression_var;
6570 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006571 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006572 )
6573 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006574 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006575 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006576 goto done;
6577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006578 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006579 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006582 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006583 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006584 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006585 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006586 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006587}
6588
6589// star_named_expressions: ','.star_named_expression+ ','?
6590static asdl_seq*
6591star_named_expressions_rule(Parser *p)
6592{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006593 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006594 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006596 return NULL;
6597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006598 asdl_seq* _res = NULL;
6599 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006600 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006603 return NULL;
6604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006605 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 +01006606 void *_opt_var;
6607 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006608 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006609 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006610 (a = _gather_73_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006611 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006612 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006613 )
6614 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006615 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 +01006616 _res = a;
6617 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006618 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006619 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006620 return NULL;
6621 }
6622 goto done;
6623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006624 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006625 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006628 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006629 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006630 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006631 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006632}
6633
6634// star_named_expression: '*' bitwise_or | named_expression
6635static expr_ty
6636star_named_expression_rule(Parser *p)
6637{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006638 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006639 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006641 return NULL;
6642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006643 expr_ty _res = NULL;
6644 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006645 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6646 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006647 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006648 return NULL;
6649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006650 int _start_lineno = p->tokens[_mark]->lineno;
6651 UNUSED(_start_lineno); // Only used by EXTRA macro
6652 int _start_col_offset = p->tokens[_mark]->col_offset;
6653 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006654 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006655 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006656 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006657 return NULL;
6658 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006659 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 +01006660 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006661 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006662 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006663 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006664 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006665 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006666 )
6667 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006668 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 +01006669 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6670 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006672 return NULL;
6673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006674 int _end_lineno = _token->end_lineno;
6675 UNUSED(_end_lineno); // Only used by EXTRA macro
6676 int _end_col_offset = _token->end_col_offset;
6677 UNUSED(_end_col_offset); // Only used by EXTRA macro
6678 _res = _Py_Starred ( a , Load , EXTRA );
6679 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006680 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006681 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006682 return NULL;
6683 }
6684 goto done;
6685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006686 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006687 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006689 }
6690 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006691 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006692 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006693 return NULL;
6694 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006695 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 +01006696 expr_ty named_expression_var;
6697 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006698 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006699 )
6700 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006701 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 +01006702 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006703 goto done;
6704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006705 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006706 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006709 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006710 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006711 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006712 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006713}
6714
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006715// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006716static expr_ty
6717named_expression_rule(Parser *p)
6718{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006719 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006721 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006722 return NULL;
6723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006724 expr_ty _res = NULL;
6725 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006726 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6727 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006728 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006729 return NULL;
6730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006731 int _start_lineno = p->tokens[_mark]->lineno;
6732 UNUSED(_start_lineno); // Only used by EXTRA macro
6733 int _start_col_offset = p->tokens[_mark]->col_offset;
6734 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006735 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006737 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006738 return NULL;
6739 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006740 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6741 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006742 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006743 expr_ty a;
6744 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006745 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006746 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006747 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006748 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006749 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006750 (_cut_var = 1)
6751 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006752 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006753 )
6754 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006755 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 +01006756 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6757 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006759 return NULL;
6760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006761 int _end_lineno = _token->end_lineno;
6762 UNUSED(_end_lineno); // Only used by EXTRA macro
6763 int _end_col_offset = _token->end_col_offset;
6764 UNUSED(_end_col_offset); // Only used by EXTRA macro
6765 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6766 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006767 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006769 return NULL;
6770 }
6771 goto done;
6772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006773 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006774 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6776 if (_cut_var) {
6777 D(p->level--);
6778 return NULL;
6779 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006780 }
6781 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006783 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006784 return NULL;
6785 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006786 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006787 expr_ty expression_var;
6788 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006789 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006790 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006791 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006792 )
6793 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006794 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006795 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006796 goto done;
6797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006798 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006799 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006801 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02006802 if (p->call_invalid_rules) { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006803 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006804 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006805 return NULL;
6806 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006807 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 +01006808 void *invalid_named_expression_var;
6809 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006810 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006811 )
6812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006813 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 +01006814 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006815 goto done;
6816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006818 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006821 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006822 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006823 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006824 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006825}
6826
6827// annotated_rhs: yield_expr | star_expressions
6828static expr_ty
6829annotated_rhs_rule(Parser *p)
6830{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006831 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006834 return NULL;
6835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006836 expr_ty _res = NULL;
6837 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006838 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006840 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006841 return NULL;
6842 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006843 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006844 expr_ty yield_expr_var;
6845 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006846 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006847 )
6848 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006849 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 +01006850 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006851 goto done;
6852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006853 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006854 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006856 }
6857 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006859 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006860 return NULL;
6861 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006862 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006863 expr_ty star_expressions_var;
6864 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006865 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006866 )
6867 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006868 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 +01006869 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006870 goto done;
6871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006872 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006873 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006876 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006877 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006878 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006879 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006880}
6881
6882// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6883static expr_ty
6884expressions_rule(Parser *p)
6885{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006886 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006887 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006888 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006889 return NULL;
6890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006891 expr_ty _res = NULL;
6892 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006893 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6894 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006895 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006896 return NULL;
6897 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006898 int _start_lineno = p->tokens[_mark]->lineno;
6899 UNUSED(_start_lineno); // Only used by EXTRA macro
6900 int _start_col_offset = p->tokens[_mark]->col_offset;
6901 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006902 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006903 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006904 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006905 return NULL;
6906 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006907 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006908 void *_opt_var;
6909 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006910 expr_ty a;
6911 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006912 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006913 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006914 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006915 (b = _loop1_75_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006916 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006917 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006918 )
6919 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006920 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006921 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6922 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006924 return NULL;
6925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006926 int _end_lineno = _token->end_lineno;
6927 UNUSED(_end_lineno); // Only used by EXTRA macro
6928 int _end_col_offset = _token->end_col_offset;
6929 UNUSED(_end_col_offset); // Only used by EXTRA macro
6930 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6931 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006932 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006933 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006934 return NULL;
6935 }
6936 goto done;
6937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006938 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006939 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006941 }
6942 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006944 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006945 return NULL;
6946 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006947 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006948 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006949 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006950 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006951 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006952 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006953 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006954 )
6955 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006956 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6958 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006960 return NULL;
6961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006962 int _end_lineno = _token->end_lineno;
6963 UNUSED(_end_lineno); // Only used by EXTRA macro
6964 int _end_col_offset = _token->end_col_offset;
6965 UNUSED(_end_col_offset); // Only used by EXTRA macro
6966 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6967 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006968 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006969 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006970 return NULL;
6971 }
6972 goto done;
6973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006974 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006975 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006977 }
6978 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006981 return NULL;
6982 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006983 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006984 expr_ty expression_var;
6985 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006986 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006987 )
6988 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006989 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006990 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006991 goto done;
6992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006993 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006994 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006997 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006998 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006999 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007000 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007001}
7002
7003// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
7004static expr_ty
7005expression_rule(Parser *p)
7006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007007 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007010 return NULL;
7011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007012 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007013 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007015 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007017 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007018 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007021 return NULL;
7022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007023 int _start_lineno = p->tokens[_mark]->lineno;
7024 UNUSED(_start_lineno); // Only used by EXTRA macro
7025 int _start_col_offset = p->tokens[_mark]->col_offset;
7026 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007027 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007028 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007029 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007030 return NULL;
7031 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007032 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 +01007033 Token * _keyword;
7034 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007035 expr_ty a;
7036 expr_ty b;
7037 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007038 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007039 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007040 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007041 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007042 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007043 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007044 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007045 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007046 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007047 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007048 )
7049 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007050 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 +01007051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7052 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007054 return NULL;
7055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007056 int _end_lineno = _token->end_lineno;
7057 UNUSED(_end_lineno); // Only used by EXTRA macro
7058 int _end_col_offset = _token->end_col_offset;
7059 UNUSED(_end_col_offset); // Only used by EXTRA macro
7060 _res = _Py_IfExp ( b , a , c , EXTRA );
7061 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007064 return NULL;
7065 }
7066 goto done;
7067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007069 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007071 }
7072 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007075 return NULL;
7076 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007077 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007078 expr_ty disjunction_var;
7079 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007080 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007081 )
7082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007083 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007084 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007085 goto done;
7086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007087 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007088 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007090 }
7091 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007092 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007093 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007094 return NULL;
7095 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007096 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007097 expr_ty lambdef_var;
7098 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007099 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007100 )
7101 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007102 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007103 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007104 goto done;
7105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007106 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007107 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007110 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007111 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007112 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007113 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007114 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007115}
7116
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007117// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007118static expr_ty
7119lambdef_rule(Parser *p)
7120{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007121 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007124 return NULL;
7125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007126 expr_ty _res = NULL;
7127 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007128 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7129 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007130 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007131 return NULL;
7132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007133 int _start_lineno = p->tokens[_mark]->lineno;
7134 UNUSED(_start_lineno); // Only used by EXTRA macro
7135 int _start_col_offset = p->tokens[_mark]->col_offset;
7136 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007137 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007139 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007140 return NULL;
7141 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007142 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 +01007143 Token * _keyword;
7144 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007145 void *a;
7146 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007147 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007148 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007149 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007150 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007151 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007152 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007153 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007154 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007155 )
7156 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007157 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 +01007158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7159 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007161 return NULL;
7162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007163 int _end_lineno = _token->end_lineno;
7164 UNUSED(_end_lineno); // Only used by EXTRA macro
7165 int _end_col_offset = _token->end_col_offset;
7166 UNUSED(_end_col_offset); // Only used by EXTRA macro
7167 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7168 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007169 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007171 return NULL;
7172 }
7173 goto done;
7174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007176 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7178 }
7179 _res = NULL;
7180 done:
7181 D(p->level--);
7182 return _res;
7183}
7184
7185// lambda_params: invalid_lambda_parameters | lambda_parameters
7186static arguments_ty
7187lambda_params_rule(Parser *p)
7188{
7189 D(p->level++);
7190 if (p->error_indicator) {
7191 D(p->level--);
7192 return NULL;
7193 }
7194 arguments_ty _res = NULL;
7195 int _mark = p->mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02007196 if (p->call_invalid_rules) { // invalid_lambda_parameters
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007197 if (p->error_indicator) {
7198 D(p->level--);
7199 return NULL;
7200 }
7201 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7202 void *invalid_lambda_parameters_var;
7203 if (
7204 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7205 )
7206 {
7207 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7208 _res = invalid_lambda_parameters_var;
7209 goto done;
7210 }
7211 p->mark = _mark;
7212 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7214 }
7215 { // lambda_parameters
7216 if (p->error_indicator) {
7217 D(p->level--);
7218 return NULL;
7219 }
7220 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7221 arguments_ty lambda_parameters_var;
7222 if (
7223 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7224 )
7225 {
7226 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7227 _res = lambda_parameters_var;
7228 goto done;
7229 }
7230 p->mark = _mark;
7231 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007234 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007235 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007236 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007237 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007238}
7239
7240// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007241// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7242// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7243// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7244// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007245// | lambda_star_etc
7246static arguments_ty
7247lambda_parameters_rule(Parser *p)
7248{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007249 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007250 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007251 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007252 return NULL;
7253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007254 arguments_ty _res = NULL;
7255 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007256 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007257 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007258 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007259 return NULL;
7260 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007261 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 +01007262 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007263 asdl_seq * b;
7264 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007265 void *d;
7266 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007267 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007268 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007269 (b = _loop0_76_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007270 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007271 (c = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007272 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007273 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007274 )
7275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007276 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 +01007277 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7278 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007279 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007281 return NULL;
7282 }
7283 goto done;
7284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007285 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007286 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7287 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 +01007288 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007289 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007292 return NULL;
7293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007294 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 +01007295 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007296 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007297 void *c;
7298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007299 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007300 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007301 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007302 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007303 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007304 )
7305 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007306 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 +01007307 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7308 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007309 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007310 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007311 return NULL;
7312 }
7313 goto done;
7314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007315 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007316 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7317 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 +01007318 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007319 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007321 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007322 return NULL;
7323 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007324 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 -07007325 asdl_seq * a;
7326 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007327 void *c;
7328 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007329 (a = _loop1_79_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007330 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007331 (b = _loop0_80_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007332 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007333 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007334 )
7335 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007336 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 +01007337 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7338 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007339 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007340 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007341 return NULL;
7342 }
7343 goto done;
7344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007345 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007346 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7347 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 +01007348 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007349 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007350 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007351 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007352 return NULL;
7353 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007354 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 -07007355 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007356 void *b;
7357 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007358 (a = _loop1_81_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007359 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007360 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007361 )
7362 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007363 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 +01007364 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7365 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007366 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007368 return NULL;
7369 }
7370 goto done;
7371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007372 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007373 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007375 }
7376 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007378 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007379 return NULL;
7380 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007381 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 +01007382 StarEtc* a;
7383 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007384 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007385 )
7386 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007387 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 +01007388 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7389 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007390 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007391 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007392 return NULL;
7393 }
7394 goto done;
7395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007396 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007397 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007400 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007401 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007402 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007403 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007404}
7405
Guido van Rossum3941d972020-05-01 09:42:03 -07007406// lambda_slash_no_default:
7407// | lambda_param_no_default+ '/' ','
7408// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007409static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007410lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007411{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007412 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007415 return NULL;
7416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007417 asdl_seq* _res = NULL;
7418 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007419 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007420 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007421 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007422 return NULL;
7423 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007424 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 +01007425 Token * _literal;
7426 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007427 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007428 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007429 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007430 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007431 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007432 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007433 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007434 )
7435 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007436 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 +01007437 _res = a;
7438 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007440 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007441 return NULL;
7442 }
7443 goto done;
7444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007446 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007448 }
7449 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007452 return NULL;
7453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007454 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 +01007455 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007456 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007457 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007458 (a = _loop1_83_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007459 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007460 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007461 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007462 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007463 )
7464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007465 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 +01007466 _res = a;
7467 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007468 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007470 return NULL;
7471 }
7472 goto done;
7473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007475 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007478 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007479 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007480 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007481 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007482}
7483
Guido van Rossum3941d972020-05-01 09:42:03 -07007484// lambda_slash_with_default:
7485// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7486// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007487static SlashWithDefault*
7488lambda_slash_with_default_rule(Parser *p)
7489{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007490 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007491 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007492 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007493 return NULL;
7494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007495 SlashWithDefault* _res = NULL;
7496 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007497 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007499 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007500 return NULL;
7501 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007502 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 +01007503 Token * _literal;
7504 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007505 asdl_seq * a;
7506 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007507 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007508 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007509 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007510 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007511 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007512 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007513 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007514 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007515 )
7516 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007517 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 +01007518 _res = _PyPegen_slash_with_default ( p , a , b );
7519 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007520 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007521 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007522 return NULL;
7523 }
7524 goto done;
7525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007526 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007527 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007529 }
7530 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007531 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007532 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007533 return NULL;
7534 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007535 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 +01007536 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007537 asdl_seq * a;
7538 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007539 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007540 (a = _loop0_86_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007541 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007542 (b = _loop1_87_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007543 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007544 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007545 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007546 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007547 )
7548 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007549 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 +01007550 _res = _PyPegen_slash_with_default ( p , a , b );
7551 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007552 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007553 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007554 return NULL;
7555 }
7556 goto done;
7557 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007558 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007559 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007562 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007563 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007564 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007565 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007566}
7567
7568// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007569// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7570// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7571// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007572// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007573static StarEtc*
7574lambda_star_etc_rule(Parser *p)
7575{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007576 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007578 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007579 return NULL;
7580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007581 StarEtc* _res = NULL;
7582 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007583 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007585 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007586 return NULL;
7587 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007588 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 +01007589 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007590 arg_ty a;
7591 asdl_seq * b;
7592 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007593 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007594 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007595 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007596 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007597 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007598 (b = _loop0_88_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007599 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007600 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007601 )
7602 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007603 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 +01007604 _res = _PyPegen_star_etc ( p , a , b , c );
7605 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007606 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007608 return NULL;
7609 }
7610 goto done;
7611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007612 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007613 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007615 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007616 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007619 return NULL;
7620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007621 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 +01007622 Token * _literal;
7623 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007624 asdl_seq * b;
7625 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007626 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007627 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007629 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007630 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007631 (b = _loop1_89_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007632 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007633 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007634 )
7635 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007636 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 +01007637 _res = _PyPegen_star_etc ( p , NULL , b , c );
7638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007641 return NULL;
7642 }
7643 goto done;
7644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007646 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007648 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007649 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007652 return NULL;
7653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007654 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 +01007655 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007656 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007657 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007658 )
7659 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007660 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 +01007661 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7662 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007665 return NULL;
7666 }
7667 goto done;
7668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007669 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007670 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007672 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02007673 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007676 return NULL;
7677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007678 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 +03007679 void *invalid_lambda_star_etc_var;
7680 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007681 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007682 )
7683 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007684 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 +01007685 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007686 goto done;
7687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007689 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007692 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007693 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007694 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007695 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007696}
7697
Guido van Rossum3941d972020-05-01 09:42:03 -07007698// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007699static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007700lambda_kwds_rule(Parser *p)
7701{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007702 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007704 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007705 return NULL;
7706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007707 arg_ty _res = NULL;
7708 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007709 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007711 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007712 return NULL;
7713 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007714 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 +01007715 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007716 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007717 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007718 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007719 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007720 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007721 )
7722 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007723 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 +01007724 _res = a;
7725 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007726 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007727 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007728 return NULL;
7729 }
7730 goto done;
7731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007732 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007733 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007736 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007737 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007738 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007739 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007740}
7741
7742// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7743static arg_ty
7744lambda_param_no_default_rule(Parser *p)
7745{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007746 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007747 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007748 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007749 return NULL;
7750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007751 arg_ty _res = NULL;
7752 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007753 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007754 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007755 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007756 return NULL;
7757 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007758 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 +01007759 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007760 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007761 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007762 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007763 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007764 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007765 )
7766 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007767 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 +01007768 _res = a;
7769 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007770 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007771 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007772 return NULL;
7773 }
7774 goto done;
7775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007776 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007777 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007779 }
7780 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007781 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007782 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007783 return NULL;
7784 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007785 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 -07007786 arg_ty a;
7787 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007788 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007789 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007790 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007791 )
7792 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007793 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 +01007794 _res = a;
7795 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007796 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007797 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007798 return NULL;
7799 }
7800 goto done;
7801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007802 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007803 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007806 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007807 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007808 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007809 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007810}
7811
7812// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7813static NameDefaultPair*
7814lambda_param_with_default_rule(Parser *p)
7815{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007816 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007817 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007818 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007819 return NULL;
7820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007821 NameDefaultPair* _res = NULL;
7822 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007823 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007825 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007826 return NULL;
7827 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007828 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 +01007829 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007830 arg_ty a;
7831 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007832 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007833 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007834 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007835 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007836 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007837 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007838 )
7839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007840 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 +01007841 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7842 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007843 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007844 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007845 return NULL;
7846 }
7847 goto done;
7848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007849 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007850 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007852 }
7853 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007854 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007855 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007856 return NULL;
7857 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007858 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 -07007859 arg_ty a;
7860 expr_ty c;
7861 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007862 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007863 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007864 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007865 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007866 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007867 )
7868 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007869 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 +01007870 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7871 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007872 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007873 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007874 return NULL;
7875 }
7876 goto done;
7877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007878 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007879 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007882 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007883 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007884 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007885 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007886}
7887
7888// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7889static NameDefaultPair*
7890lambda_param_maybe_default_rule(Parser *p)
7891{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007892 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007894 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007895 return NULL;
7896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007897 NameDefaultPair* _res = NULL;
7898 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007899 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007902 return NULL;
7903 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007904 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 +01007905 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007906 arg_ty a;
7907 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007908 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007909 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007910 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007911 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007912 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007913 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007914 )
7915 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007916 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 +01007917 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7918 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007919 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007920 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007921 return NULL;
7922 }
7923 goto done;
7924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007925 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007926 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007928 }
7929 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007931 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007932 return NULL;
7933 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007934 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 -07007935 arg_ty a;
7936 void *c;
7937 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007938 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007940 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007941 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007942 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007943 )
7944 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007945 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 +01007946 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7947 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007948 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007949 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007950 return NULL;
7951 }
7952 goto done;
7953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007954 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007955 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007958 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007959 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007960 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007961 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007962}
7963
7964// lambda_param: NAME
7965static arg_ty
7966lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007967{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007968 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007970 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007971 return NULL;
7972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007973 arg_ty _res = NULL;
7974 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7976 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007977 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007978 return NULL;
7979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007980 int _start_lineno = p->tokens[_mark]->lineno;
7981 UNUSED(_start_lineno); // Only used by EXTRA macro
7982 int _start_col_offset = p->tokens[_mark]->col_offset;
7983 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007984 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007986 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007987 return NULL;
7988 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007989 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007990 expr_ty a;
7991 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007992 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007993 )
7994 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007995 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7997 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007999 return NULL;
8000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008001 int _end_lineno = _token->end_lineno;
8002 UNUSED(_end_lineno); // Only used by EXTRA macro
8003 int _end_col_offset = _token->end_col_offset;
8004 UNUSED(_end_col_offset); // Only used by EXTRA macro
8005 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
8006 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008007 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008009 return NULL;
8010 }
8011 goto done;
8012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008013 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008014 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008017 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008018 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008019 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008020 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008021}
8022
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008023// disjunction: conjunction (('or' conjunction))+ | conjunction
8024static expr_ty
8025disjunction_rule(Parser *p)
8026{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008027 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008028 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008030 return NULL;
8031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008032 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008033 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8034 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008035 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008037 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008038 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8039 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008040 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008041 return NULL;
8042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008043 int _start_lineno = p->tokens[_mark]->lineno;
8044 UNUSED(_start_lineno); // Only used by EXTRA macro
8045 int _start_col_offset = p->tokens[_mark]->col_offset;
8046 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008047 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008049 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008050 return NULL;
8051 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008052 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008053 expr_ty a;
8054 asdl_seq * b;
8055 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008056 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008057 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008058 (b = _loop1_90_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008059 )
8060 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008061 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 +01008062 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8063 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008064 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008065 return NULL;
8066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008067 int _end_lineno = _token->end_lineno;
8068 UNUSED(_end_lineno); // Only used by EXTRA macro
8069 int _end_col_offset = _token->end_col_offset;
8070 UNUSED(_end_col_offset); // Only used by EXTRA macro
8071 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8072 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008073 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008075 return NULL;
8076 }
8077 goto done;
8078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008079 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008080 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008082 }
8083 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008086 return NULL;
8087 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008088 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008089 expr_ty conjunction_var;
8090 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008091 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008092 )
8093 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008094 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008095 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008096 goto done;
8097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008098 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008099 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008102 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008103 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008104 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008105 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008106 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008107}
8108
8109// conjunction: inversion (('and' inversion))+ | inversion
8110static expr_ty
8111conjunction_rule(Parser *p)
8112{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008113 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008116 return NULL;
8117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008118 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008119 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8120 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008121 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008123 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008124 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8125 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008126 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008127 return NULL;
8128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008129 int _start_lineno = p->tokens[_mark]->lineno;
8130 UNUSED(_start_lineno); // Only used by EXTRA macro
8131 int _start_col_offset = p->tokens[_mark]->col_offset;
8132 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008133 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008134 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008135 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008136 return NULL;
8137 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008138 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008139 expr_ty a;
8140 asdl_seq * b;
8141 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008142 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008143 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008144 (b = _loop1_91_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008145 )
8146 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008147 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 +01008148 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8149 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008150 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008151 return NULL;
8152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008153 int _end_lineno = _token->end_lineno;
8154 UNUSED(_end_lineno); // Only used by EXTRA macro
8155 int _end_col_offset = _token->end_col_offset;
8156 UNUSED(_end_col_offset); // Only used by EXTRA macro
8157 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8158 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008159 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008161 return NULL;
8162 }
8163 goto done;
8164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008165 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008166 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008168 }
8169 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008170 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008171 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008172 return NULL;
8173 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008174 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008175 expr_ty inversion_var;
8176 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008177 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008178 )
8179 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008180 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008181 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008182 goto done;
8183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008184 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008185 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008188 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008189 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008190 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008191 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008192 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008193}
8194
8195// inversion: 'not' inversion | comparison
8196static expr_ty
8197inversion_rule(Parser *p)
8198{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008199 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008200 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008201 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008202 return NULL;
8203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008204 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008205 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8206 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008207 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008209 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008210 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8211 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008213 return NULL;
8214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008215 int _start_lineno = p->tokens[_mark]->lineno;
8216 UNUSED(_start_lineno); // Only used by EXTRA macro
8217 int _start_col_offset = p->tokens[_mark]->col_offset;
8218 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008219 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008221 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008222 return NULL;
8223 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008224 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008225 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008226 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008227 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008228 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008229 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008230 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008231 )
8232 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008233 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8235 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008236 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008237 return NULL;
8238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008239 int _end_lineno = _token->end_lineno;
8240 UNUSED(_end_lineno); // Only used by EXTRA macro
8241 int _end_col_offset = _token->end_col_offset;
8242 UNUSED(_end_col_offset); // Only used by EXTRA macro
8243 _res = _Py_UnaryOp ( Not , a , EXTRA );
8244 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008247 return NULL;
8248 }
8249 goto done;
8250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008251 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008252 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008254 }
8255 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008258 return NULL;
8259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008260 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008261 expr_ty comparison_var;
8262 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008263 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008264 )
8265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008266 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008267 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008268 goto done;
8269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008271 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008274 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008275 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008276 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008277 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008278 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008279}
8280
8281// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8282static expr_ty
8283comparison_rule(Parser *p)
8284{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008285 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008288 return NULL;
8289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008290 expr_ty _res = NULL;
8291 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008292 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8293 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008294 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008295 return NULL;
8296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008297 int _start_lineno = p->tokens[_mark]->lineno;
8298 UNUSED(_start_lineno); // Only used by EXTRA macro
8299 int _start_col_offset = p->tokens[_mark]->col_offset;
8300 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008301 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008303 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008304 return NULL;
8305 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008306 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 +01008307 expr_ty a;
8308 asdl_seq * b;
8309 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008310 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008311 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008312 (b = _loop1_92_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008313 )
8314 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008315 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 +01008316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8317 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008319 return NULL;
8320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008321 int _end_lineno = _token->end_lineno;
8322 UNUSED(_end_lineno); // Only used by EXTRA macro
8323 int _end_col_offset = _token->end_col_offset;
8324 UNUSED(_end_col_offset); // Only used by EXTRA macro
8325 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008327 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008329 return NULL;
8330 }
8331 goto done;
8332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008333 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008334 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008336 }
8337 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008340 return NULL;
8341 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008342 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008343 expr_ty bitwise_or_var;
8344 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008345 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008346 )
8347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008348 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008349 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008350 goto done;
8351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008353 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008356 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008357 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008358 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008359 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008360}
8361
8362// compare_op_bitwise_or_pair:
8363// | eq_bitwise_or
8364// | noteq_bitwise_or
8365// | lte_bitwise_or
8366// | lt_bitwise_or
8367// | gte_bitwise_or
8368// | gt_bitwise_or
8369// | notin_bitwise_or
8370// | in_bitwise_or
8371// | isnot_bitwise_or
8372// | is_bitwise_or
8373static CmpopExprPair*
8374compare_op_bitwise_or_pair_rule(Parser *p)
8375{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008376 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008379 return NULL;
8380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008381 CmpopExprPair* _res = NULL;
8382 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008383 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008386 return NULL;
8387 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008388 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 +01008389 CmpopExprPair* eq_bitwise_or_var;
8390 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008391 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008392 )
8393 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008394 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 +01008395 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008396 goto done;
8397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008398 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008399 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008401 }
8402 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008405 return NULL;
8406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008407 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 +01008408 CmpopExprPair* noteq_bitwise_or_var;
8409 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008410 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008411 )
8412 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008413 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 +01008414 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008415 goto done;
8416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008417 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008418 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008420 }
8421 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008424 return NULL;
8425 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008426 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 +01008427 CmpopExprPair* lte_bitwise_or_var;
8428 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008429 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008430 )
8431 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008432 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 +01008433 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008434 goto done;
8435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008437 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008439 }
8440 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008443 return NULL;
8444 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008445 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 +01008446 CmpopExprPair* lt_bitwise_or_var;
8447 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008448 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008449 )
8450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008451 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 +01008452 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008453 goto done;
8454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008455 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008456 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008458 }
8459 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008460 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008461 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008462 return NULL;
8463 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008464 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 +01008465 CmpopExprPair* gte_bitwise_or_var;
8466 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008467 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008468 )
8469 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008470 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 +01008471 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008472 goto done;
8473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008475 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008477 }
8478 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008480 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008481 return NULL;
8482 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008483 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 +01008484 CmpopExprPair* gt_bitwise_or_var;
8485 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008486 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008487 )
8488 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008489 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 +01008490 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008491 goto done;
8492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008493 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008494 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008496 }
8497 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008499 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008500 return NULL;
8501 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008502 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 +01008503 CmpopExprPair* notin_bitwise_or_var;
8504 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008505 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008506 )
8507 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008508 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 +01008509 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008510 goto done;
8511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008512 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008513 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008515 }
8516 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008518 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008519 return NULL;
8520 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008521 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 +01008522 CmpopExprPair* in_bitwise_or_var;
8523 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008524 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008525 )
8526 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008527 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 +01008528 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008529 goto done;
8530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008531 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008532 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008534 }
8535 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008537 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008538 return NULL;
8539 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008540 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 +01008541 CmpopExprPair* isnot_bitwise_or_var;
8542 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008543 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008544 )
8545 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008546 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 +01008547 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008548 goto done;
8549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008550 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008551 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008553 }
8554 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008556 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008557 return NULL;
8558 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008559 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 +01008560 CmpopExprPair* is_bitwise_or_var;
8561 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008562 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008563 )
8564 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008565 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 +01008566 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008567 goto done;
8568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008569 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008570 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008573 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008574 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008575 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008576 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008577}
8578
8579// eq_bitwise_or: '==' bitwise_or
8580static CmpopExprPair*
8581eq_bitwise_or_rule(Parser *p)
8582{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008583 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008586 return NULL;
8587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008588 CmpopExprPair* _res = NULL;
8589 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008590 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008591 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008592 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008593 return NULL;
8594 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008595 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 +01008596 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008597 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008598 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008599 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008600 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008601 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008602 )
8603 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008604 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 +01008605 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8606 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008607 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008608 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008609 return NULL;
8610 }
8611 goto done;
8612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008613 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008614 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008617 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008618 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008619 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008620 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008621}
8622
Pablo Galindo2b74c832020-04-27 18:02:07 +01008623// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008624static CmpopExprPair*
8625noteq_bitwise_or_rule(Parser *p)
8626{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008627 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008628 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008629 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008630 return NULL;
8631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008632 CmpopExprPair* _res = NULL;
8633 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008634 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008635 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008636 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008637 return NULL;
8638 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008639 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 +03008640 void *_tmp_93_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008641 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008642 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008643 (_tmp_93_var = _tmp_93_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008644 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008645 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008646 )
8647 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008648 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 +01008649 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8650 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008651 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008652 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008653 return NULL;
8654 }
8655 goto done;
8656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008657 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008658 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008661 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008662 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008663 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008664 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008665}
8666
8667// lte_bitwise_or: '<=' bitwise_or
8668static CmpopExprPair*
8669lte_bitwise_or_rule(Parser *p)
8670{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008671 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008674 return NULL;
8675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008676 CmpopExprPair* _res = NULL;
8677 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008678 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008679 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008680 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008681 return NULL;
8682 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008683 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 +01008684 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008685 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008686 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008687 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008689 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008690 )
8691 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008692 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 +01008693 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8694 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008695 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008697 return NULL;
8698 }
8699 goto done;
8700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008701 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008702 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008705 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008706 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008708 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008709}
8710
8711// lt_bitwise_or: '<' bitwise_or
8712static CmpopExprPair*
8713lt_bitwise_or_rule(Parser *p)
8714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008718 return NULL;
8719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008720 CmpopExprPair* _res = NULL;
8721 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008722 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008725 return NULL;
8726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008727 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 +01008728 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008729 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008730 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008731 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008732 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008733 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008734 )
8735 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008736 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 +01008737 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008741 return NULL;
8742 }
8743 goto done;
8744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008746 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008753}
8754
8755// gte_bitwise_or: '>=' bitwise_or
8756static CmpopExprPair*
8757gte_bitwise_or_rule(Parser *p)
8758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008762 return NULL;
8763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008764 CmpopExprPair* _res = NULL;
8765 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008766 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008769 return NULL;
8770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008771 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 +01008772 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008773 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008774 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008775 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008776 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008777 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008778 )
8779 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008780 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 +01008781 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8782 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008783 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008784 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008785 return NULL;
8786 }
8787 goto done;
8788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008789 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008790 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008793 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008794 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008795 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008796 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008797}
8798
8799// gt_bitwise_or: '>' bitwise_or
8800static CmpopExprPair*
8801gt_bitwise_or_rule(Parser *p)
8802{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008803 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008804 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008805 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008806 return NULL;
8807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008808 CmpopExprPair* _res = NULL;
8809 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008810 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008812 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008813 return NULL;
8814 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008815 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 +01008816 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008817 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008818 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008819 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008820 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008821 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008822 )
8823 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008824 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 +01008825 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008829 return NULL;
8830 }
8831 goto done;
8832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008834 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008837 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008838 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008840 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008841}
8842
8843// notin_bitwise_or: 'not' 'in' bitwise_or
8844static CmpopExprPair*
8845notin_bitwise_or_rule(Parser *p)
8846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008847 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008850 return NULL;
8851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008852 CmpopExprPair* _res = NULL;
8853 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008854 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008857 return NULL;
8858 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008859 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 +01008860 Token * _keyword;
8861 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008862 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008863 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008864 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008865 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008866 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008867 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008868 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008869 )
8870 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008871 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 +01008872 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8873 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008874 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008876 return NULL;
8877 }
8878 goto done;
8879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008880 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008881 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008884 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008885 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008886 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008887 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008888}
8889
8890// in_bitwise_or: 'in' bitwise_or
8891static CmpopExprPair*
8892in_bitwise_or_rule(Parser *p)
8893{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008894 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008895 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008897 return NULL;
8898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008899 CmpopExprPair* _res = NULL;
8900 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008901 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008903 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008904 return NULL;
8905 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008906 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 +01008907 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008908 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008909 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008910 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008911 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008912 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008913 )
8914 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008915 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 +01008916 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8917 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008918 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008919 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008920 return NULL;
8921 }
8922 goto done;
8923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008924 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008925 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008928 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008929 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008930 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008931 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008932}
8933
8934// isnot_bitwise_or: 'is' 'not' bitwise_or
8935static CmpopExprPair*
8936isnot_bitwise_or_rule(Parser *p)
8937{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008938 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008940 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008941 return NULL;
8942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008943 CmpopExprPair* _res = NULL;
8944 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008945 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008946 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008947 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008948 return NULL;
8949 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008950 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 +01008951 Token * _keyword;
8952 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008953 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008954 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008955 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008956 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008957 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008958 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008959 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008960 )
8961 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008962 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 +01008963 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8964 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008965 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008966 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008967 return NULL;
8968 }
8969 goto done;
8970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008971 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008972 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008975 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008976 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008977 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008978 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008979}
8980
8981// is_bitwise_or: 'is' bitwise_or
8982static CmpopExprPair*
8983is_bitwise_or_rule(Parser *p)
8984{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008985 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008986 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008987 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008988 return NULL;
8989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008990 CmpopExprPair* _res = NULL;
8991 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008992 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008993 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008994 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008995 return NULL;
8996 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008997 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 +01008998 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008999 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009000 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03009001 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009002 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009003 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009004 )
9005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009006 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 +01009007 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
9008 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009009 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009011 return NULL;
9012 }
9013 goto done;
9014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009015 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009016 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009019 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009020 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009021 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009022 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009023}
9024
9025// Left-recursive
9026// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9027static expr_ty bitwise_or_raw(Parser *);
9028static expr_ty
9029bitwise_or_rule(Parser *p)
9030{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009031 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009032 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009033 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9034 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009035 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009037 int _mark = p->mark;
9038 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009039 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009040 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009041 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009042 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009043 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009045 p->mark = _mark;
9046 void *_raw = bitwise_or_raw(p);
9047 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009048 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009049 _resmark = p->mark;
9050 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009052 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009053 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009054 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009055}
9056static expr_ty
9057bitwise_or_raw(Parser *p)
9058{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009059 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009062 return NULL;
9063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009064 expr_ty _res = NULL;
9065 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009066 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9067 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009069 return NULL;
9070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009071 int _start_lineno = p->tokens[_mark]->lineno;
9072 UNUSED(_start_lineno); // Only used by EXTRA macro
9073 int _start_col_offset = p->tokens[_mark]->col_offset;
9074 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009075 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009076 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009077 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009078 return NULL;
9079 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009080 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 +01009081 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009082 expr_ty a;
9083 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009084 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009085 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009086 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009087 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009088 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009089 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009090 )
9091 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009092 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 +01009093 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9094 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009095 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009096 return NULL;
9097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009098 int _end_lineno = _token->end_lineno;
9099 UNUSED(_end_lineno); // Only used by EXTRA macro
9100 int _end_col_offset = _token->end_col_offset;
9101 UNUSED(_end_col_offset); // Only used by EXTRA macro
9102 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9103 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009104 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009105 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009106 return NULL;
9107 }
9108 goto done;
9109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009110 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009111 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009113 }
9114 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009115 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009116 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009117 return NULL;
9118 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009119 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009120 expr_ty bitwise_xor_var;
9121 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009122 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009123 )
9124 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009125 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 +01009126 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009127 goto done;
9128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009129 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009130 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009133 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009134 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009135 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009136 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009137}
9138
9139// Left-recursive
9140// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9141static expr_ty bitwise_xor_raw(Parser *);
9142static expr_ty
9143bitwise_xor_rule(Parser *p)
9144{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009145 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009146 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009147 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9148 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009149 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009151 int _mark = p->mark;
9152 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009153 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009154 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009155 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009156 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009157 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009159 p->mark = _mark;
9160 void *_raw = bitwise_xor_raw(p);
9161 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009162 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009163 _resmark = p->mark;
9164 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009166 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009167 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009168 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009169}
9170static expr_ty
9171bitwise_xor_raw(Parser *p)
9172{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009173 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009175 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009176 return NULL;
9177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009178 expr_ty _res = NULL;
9179 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9181 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009182 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009183 return NULL;
9184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009185 int _start_lineno = p->tokens[_mark]->lineno;
9186 UNUSED(_start_lineno); // Only used by EXTRA macro
9187 int _start_col_offset = p->tokens[_mark]->col_offset;
9188 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009190 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009191 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009192 return NULL;
9193 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009194 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 +01009195 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009196 expr_ty a;
9197 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009198 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009199 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009200 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009201 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009202 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009203 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009204 )
9205 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009206 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 +01009207 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9208 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009209 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009210 return NULL;
9211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009212 int _end_lineno = _token->end_lineno;
9213 UNUSED(_end_lineno); // Only used by EXTRA macro
9214 int _end_col_offset = _token->end_col_offset;
9215 UNUSED(_end_col_offset); // Only used by EXTRA macro
9216 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9217 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009218 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009219 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009220 return NULL;
9221 }
9222 goto done;
9223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009224 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009225 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009227 }
9228 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009229 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009230 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009231 return NULL;
9232 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009233 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009234 expr_ty bitwise_and_var;
9235 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009236 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009237 )
9238 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009239 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 +01009240 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009241 goto done;
9242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009243 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009244 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009247 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009248 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009249 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009250 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009251}
9252
9253// Left-recursive
9254// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9255static expr_ty bitwise_and_raw(Parser *);
9256static expr_ty
9257bitwise_and_rule(Parser *p)
9258{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009259 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009260 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009261 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9262 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009263 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009265 int _mark = p->mark;
9266 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009267 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009268 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009269 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009270 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009271 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009273 p->mark = _mark;
9274 void *_raw = bitwise_and_raw(p);
9275 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009276 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009277 _resmark = p->mark;
9278 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009280 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009281 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009282 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009283}
9284static expr_ty
9285bitwise_and_raw(Parser *p)
9286{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009287 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009288 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009289 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009290 return NULL;
9291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009292 expr_ty _res = NULL;
9293 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9295 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009297 return NULL;
9298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009299 int _start_lineno = p->tokens[_mark]->lineno;
9300 UNUSED(_start_lineno); // Only used by EXTRA macro
9301 int _start_col_offset = p->tokens[_mark]->col_offset;
9302 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009303 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009304 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009305 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009306 return NULL;
9307 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009308 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 +01009309 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009310 expr_ty a;
9311 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009312 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009313 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009314 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009315 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009316 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009317 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009318 )
9319 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009320 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 +01009321 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9322 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009323 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009324 return NULL;
9325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009326 int _end_lineno = _token->end_lineno;
9327 UNUSED(_end_lineno); // Only used by EXTRA macro
9328 int _end_col_offset = _token->end_col_offset;
9329 UNUSED(_end_col_offset); // Only used by EXTRA macro
9330 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9331 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009332 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009333 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009334 return NULL;
9335 }
9336 goto done;
9337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009338 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009339 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009341 }
9342 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009343 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009344 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009345 return NULL;
9346 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009347 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009348 expr_ty shift_expr_var;
9349 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009350 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009351 )
9352 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009353 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 +01009354 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009355 goto done;
9356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009357 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009358 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009361 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009362 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009363 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009364 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009365}
9366
9367// Left-recursive
9368// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9369static expr_ty shift_expr_raw(Parser *);
9370static expr_ty
9371shift_expr_rule(Parser *p)
9372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009373 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009374 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009375 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9376 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009377 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009379 int _mark = p->mark;
9380 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009381 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009382 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009383 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009384 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009385 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009387 p->mark = _mark;
9388 void *_raw = shift_expr_raw(p);
9389 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009390 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009391 _resmark = p->mark;
9392 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009394 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009395 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009396 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009397}
9398static expr_ty
9399shift_expr_raw(Parser *p)
9400{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009401 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009402 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009403 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009404 return NULL;
9405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009406 expr_ty _res = NULL;
9407 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009408 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9409 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009411 return NULL;
9412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009413 int _start_lineno = p->tokens[_mark]->lineno;
9414 UNUSED(_start_lineno); // Only used by EXTRA macro
9415 int _start_col_offset = p->tokens[_mark]->col_offset;
9416 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009417 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009418 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009419 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009420 return NULL;
9421 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009422 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 +01009423 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009424 expr_ty a;
9425 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009426 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009427 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009428 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009429 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009430 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009431 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009432 )
9433 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009434 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 +01009435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9436 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009437 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009438 return NULL;
9439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009440 int _end_lineno = _token->end_lineno;
9441 UNUSED(_end_lineno); // Only used by EXTRA macro
9442 int _end_col_offset = _token->end_col_offset;
9443 UNUSED(_end_col_offset); // Only used by EXTRA macro
9444 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9445 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009446 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009447 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009448 return NULL;
9449 }
9450 goto done;
9451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009452 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009453 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009455 }
9456 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009457 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009458 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009459 return NULL;
9460 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009461 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 +01009462 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009463 expr_ty a;
9464 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009465 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009466 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009467 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009468 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009469 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009470 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009471 )
9472 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009473 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 +01009474 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9475 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009477 return NULL;
9478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009479 int _end_lineno = _token->end_lineno;
9480 UNUSED(_end_lineno); // Only used by EXTRA macro
9481 int _end_col_offset = _token->end_col_offset;
9482 UNUSED(_end_col_offset); // Only used by EXTRA macro
9483 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9484 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009485 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009486 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009487 return NULL;
9488 }
9489 goto done;
9490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009491 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009492 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009494 }
9495 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009496 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009497 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009498 return NULL;
9499 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009500 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009501 expr_ty sum_var;
9502 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009503 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504 )
9505 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009506 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009507 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009508 goto done;
9509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009510 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009511 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009514 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009515 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009516 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009517 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009518}
9519
9520// Left-recursive
9521// sum: sum '+' term | sum '-' term | term
9522static expr_ty sum_raw(Parser *);
9523static expr_ty
9524sum_rule(Parser *p)
9525{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009526 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009527 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009528 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9529 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009530 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009532 int _mark = p->mark;
9533 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009534 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009535 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009536 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009537 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009538 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009540 p->mark = _mark;
9541 void *_raw = sum_raw(p);
9542 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009543 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009544 _resmark = p->mark;
9545 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009547 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009548 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009549 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009550}
9551static expr_ty
9552sum_raw(Parser *p)
9553{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009554 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009557 return NULL;
9558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009559 expr_ty _res = NULL;
9560 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009561 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9562 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009564 return NULL;
9565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009566 int _start_lineno = p->tokens[_mark]->lineno;
9567 UNUSED(_start_lineno); // Only used by EXTRA macro
9568 int _start_col_offset = p->tokens[_mark]->col_offset;
9569 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009570 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009572 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009573 return NULL;
9574 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009575 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009576 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009577 expr_ty a;
9578 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009579 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009580 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009581 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009582 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009583 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009584 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009585 )
9586 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009587 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009588 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9589 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009591 return NULL;
9592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009593 int _end_lineno = _token->end_lineno;
9594 UNUSED(_end_lineno); // Only used by EXTRA macro
9595 int _end_col_offset = _token->end_col_offset;
9596 UNUSED(_end_col_offset); // Only used by EXTRA macro
9597 _res = _Py_BinOp ( a , Add , b , EXTRA );
9598 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009599 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009601 return NULL;
9602 }
9603 goto done;
9604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009605 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009606 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009608 }
9609 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009610 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009611 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009612 return NULL;
9613 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009614 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009615 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009616 expr_ty a;
9617 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009618 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009619 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009620 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009621 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009622 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009623 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009624 )
9625 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009626 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009627 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9628 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009629 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009630 return NULL;
9631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009632 int _end_lineno = _token->end_lineno;
9633 UNUSED(_end_lineno); // Only used by EXTRA macro
9634 int _end_col_offset = _token->end_col_offset;
9635 UNUSED(_end_col_offset); // Only used by EXTRA macro
9636 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9637 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009638 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009640 return NULL;
9641 }
9642 goto done;
9643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009644 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009645 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009647 }
9648 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009650 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009651 return NULL;
9652 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009653 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009654 expr_ty term_var;
9655 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009656 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009657 )
9658 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009659 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009660 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009661 goto done;
9662 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009663 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009664 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009667 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009668 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009669 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009670 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009671}
9672
9673// Left-recursive
9674// term:
9675// | term '*' factor
9676// | term '/' factor
9677// | term '//' factor
9678// | term '%' factor
9679// | term '@' factor
9680// | factor
9681static expr_ty term_raw(Parser *);
9682static expr_ty
9683term_rule(Parser *p)
9684{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009685 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009686 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009687 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9688 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009689 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009691 int _mark = p->mark;
9692 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009693 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009694 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009695 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009696 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009697 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009699 p->mark = _mark;
9700 void *_raw = term_raw(p);
9701 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009702 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009703 _resmark = p->mark;
9704 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009706 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009708 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009709}
9710static expr_ty
9711term_raw(Parser *p)
9712{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009713 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009716 return NULL;
9717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009718 expr_ty _res = NULL;
9719 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009720 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9721 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009722 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009723 return NULL;
9724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009725 int _start_lineno = p->tokens[_mark]->lineno;
9726 UNUSED(_start_lineno); // Only used by EXTRA macro
9727 int _start_col_offset = p->tokens[_mark]->col_offset;
9728 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009729 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009730 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009731 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009732 return NULL;
9733 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009734 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009735 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009736 expr_ty a;
9737 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009738 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009739 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009740 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009741 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009742 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009743 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009744 )
9745 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009746 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9748 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009750 return NULL;
9751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009752 int _end_lineno = _token->end_lineno;
9753 UNUSED(_end_lineno); // Only used by EXTRA macro
9754 int _end_col_offset = _token->end_col_offset;
9755 UNUSED(_end_col_offset); // Only used by EXTRA macro
9756 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9757 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009758 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009760 return NULL;
9761 }
9762 goto done;
9763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009765 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009767 }
9768 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009771 return NULL;
9772 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009773 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009774 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009775 expr_ty a;
9776 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009777 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009778 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009779 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009780 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009781 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009782 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009783 )
9784 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009785 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009786 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9787 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009788 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009789 return NULL;
9790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009791 int _end_lineno = _token->end_lineno;
9792 UNUSED(_end_lineno); // Only used by EXTRA macro
9793 int _end_col_offset = _token->end_col_offset;
9794 UNUSED(_end_col_offset); // Only used by EXTRA macro
9795 _res = _Py_BinOp ( a , Div , b , EXTRA );
9796 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009797 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009798 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009799 return NULL;
9800 }
9801 goto done;
9802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009803 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009804 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009806 }
9807 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009809 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009810 return NULL;
9811 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009812 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009813 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009814 expr_ty a;
9815 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009816 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009817 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009818 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009819 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009820 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009821 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009822 )
9823 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009824 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009825 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9826 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009828 return NULL;
9829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009830 int _end_lineno = _token->end_lineno;
9831 UNUSED(_end_lineno); // Only used by EXTRA macro
9832 int _end_col_offset = _token->end_col_offset;
9833 UNUSED(_end_col_offset); // Only used by EXTRA macro
9834 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9835 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009836 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009838 return NULL;
9839 }
9840 goto done;
9841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009843 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009845 }
9846 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009847 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009848 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009849 return NULL;
9850 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009851 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009852 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009853 expr_ty a;
9854 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009855 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009856 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009857 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009858 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009860 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009861 )
9862 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009863 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9865 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009867 return NULL;
9868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009869 int _end_lineno = _token->end_lineno;
9870 UNUSED(_end_lineno); // Only used by EXTRA macro
9871 int _end_col_offset = _token->end_col_offset;
9872 UNUSED(_end_col_offset); // Only used by EXTRA macro
9873 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9874 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009875 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009877 return NULL;
9878 }
9879 goto done;
9880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009881 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009882 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009884 }
9885 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009887 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009888 return NULL;
9889 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009890 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009891 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009892 expr_ty a;
9893 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009894 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009895 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009896 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009897 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009898 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009899 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009900 )
9901 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009902 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009903 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9904 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009906 return NULL;
9907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009908 int _end_lineno = _token->end_lineno;
9909 UNUSED(_end_lineno); // Only used by EXTRA macro
9910 int _end_col_offset = _token->end_col_offset;
9911 UNUSED(_end_col_offset); // Only used by EXTRA macro
9912 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9913 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009914 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009915 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009916 return NULL;
9917 }
9918 goto done;
9919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009920 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009921 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009923 }
9924 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009925 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009926 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009927 return NULL;
9928 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009929 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009930 expr_ty factor_var;
9931 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009932 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009933 )
9934 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009935 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009936 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009937 goto done;
9938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009939 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009940 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009943 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009944 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009945 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009946 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009947}
9948
9949// factor: '+' factor | '-' factor | '~' factor | power
9950static expr_ty
9951factor_rule(Parser *p)
9952{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009953 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009954 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009956 return NULL;
9957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009958 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009959 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9960 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009961 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009963 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009964 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9965 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009966 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009967 return NULL;
9968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009969 int _start_lineno = p->tokens[_mark]->lineno;
9970 UNUSED(_start_lineno); // Only used by EXTRA macro
9971 int _start_col_offset = p->tokens[_mark]->col_offset;
9972 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009973 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009975 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009976 return NULL;
9977 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009978 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009979 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009980 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009981 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009982 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009983 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009984 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009985 )
9986 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009987 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009988 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9989 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009991 return NULL;
9992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009993 int _end_lineno = _token->end_lineno;
9994 UNUSED(_end_lineno); // Only used by EXTRA macro
9995 int _end_col_offset = _token->end_col_offset;
9996 UNUSED(_end_col_offset); // Only used by EXTRA macro
9997 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9998 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009999 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010001 return NULL;
10002 }
10003 goto done;
10004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010005 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010006 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010008 }
10009 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010011 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010012 return NULL;
10013 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010014 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010015 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010016 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010017 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010018 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010019 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010020 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010021 )
10022 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010023 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10025 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010026 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010027 return NULL;
10028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010029 int _end_lineno = _token->end_lineno;
10030 UNUSED(_end_lineno); // Only used by EXTRA macro
10031 int _end_col_offset = _token->end_col_offset;
10032 UNUSED(_end_col_offset); // Only used by EXTRA macro
10033 _res = _Py_UnaryOp ( USub , a , EXTRA );
10034 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010035 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010036 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010037 return NULL;
10038 }
10039 goto done;
10040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010041 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010042 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010044 }
10045 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010047 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010048 return NULL;
10049 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010050 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010051 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010052 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010053 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010054 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010055 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010056 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010057 )
10058 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010059 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010060 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10061 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010062 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010063 return NULL;
10064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010065 int _end_lineno = _token->end_lineno;
10066 UNUSED(_end_lineno); // Only used by EXTRA macro
10067 int _end_col_offset = _token->end_col_offset;
10068 UNUSED(_end_col_offset); // Only used by EXTRA macro
10069 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10070 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010071 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010072 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010073 return NULL;
10074 }
10075 goto done;
10076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010077 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010078 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010080 }
10081 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010082 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010083 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010084 return NULL;
10085 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010086 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010087 expr_ty power_var;
10088 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010089 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010090 )
10091 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010092 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010093 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010094 goto done;
10095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010096 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010097 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010100 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010101 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010102 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010103 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010104 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010105}
10106
10107// power: await_primary '**' factor | await_primary
10108static expr_ty
10109power_rule(Parser *p)
10110{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010111 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010114 return NULL;
10115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010116 expr_ty _res = NULL;
10117 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010118 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10119 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010121 return NULL;
10122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010123 int _start_lineno = p->tokens[_mark]->lineno;
10124 UNUSED(_start_lineno); // Only used by EXTRA macro
10125 int _start_col_offset = p->tokens[_mark]->col_offset;
10126 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010127 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010130 return NULL;
10131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010132 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010133 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010134 expr_ty a;
10135 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010137 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010138 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010139 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010140 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010141 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010142 )
10143 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010144 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 +010010145 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10146 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010147 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010148 return NULL;
10149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010150 int _end_lineno = _token->end_lineno;
10151 UNUSED(_end_lineno); // Only used by EXTRA macro
10152 int _end_col_offset = _token->end_col_offset;
10153 UNUSED(_end_col_offset); // Only used by EXTRA macro
10154 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10155 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010156 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010157 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010158 return NULL;
10159 }
10160 goto done;
10161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010163 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010165 }
10166 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010169 return NULL;
10170 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010171 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010172 expr_ty await_primary_var;
10173 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010174 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010175 )
10176 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010177 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010178 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010179 goto done;
10180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010181 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010182 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010185 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010186 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010187 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010188 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010189}
10190
10191// await_primary: AWAIT primary | primary
10192static expr_ty
10193await_primary_rule(Parser *p)
10194{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010195 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010198 return NULL;
10199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010200 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010201 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10202 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010203 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010205 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010206 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10207 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010208 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010209 return NULL;
10210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010211 int _start_lineno = p->tokens[_mark]->lineno;
10212 UNUSED(_start_lineno); // Only used by EXTRA macro
10213 int _start_col_offset = p->tokens[_mark]->col_offset;
10214 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010215 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010217 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010218 return NULL;
10219 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010220 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010221 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010222 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010224 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010225 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010226 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010227 )
10228 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010229 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 +010010230 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10231 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010232 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010233 return NULL;
10234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010235 int _end_lineno = _token->end_lineno;
10236 UNUSED(_end_lineno); // Only used by EXTRA macro
10237 int _end_col_offset = _token->end_col_offset;
10238 UNUSED(_end_col_offset); // Only used by EXTRA macro
10239 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10240 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010241 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010243 return NULL;
10244 }
10245 goto done;
10246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010247 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010248 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010250 }
10251 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010253 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010254 return NULL;
10255 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010256 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010257 expr_ty primary_var;
10258 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010259 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 )
10261 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010262 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010263 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010264 goto done;
10265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010266 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010267 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010270 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010271 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010272 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010273 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010274 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010275}
10276
10277// Left-recursive
10278// primary:
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020010279// | invalid_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010280// | primary '.' NAME
10281// | primary genexp
10282// | primary '(' arguments? ')'
10283// | primary '[' slices ']'
10284// | atom
10285static expr_ty primary_raw(Parser *);
10286static expr_ty
10287primary_rule(Parser *p)
10288{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010289 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010290 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010291 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10292 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010293 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010295 int _mark = p->mark;
10296 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010297 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010298 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010299 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010300 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010301 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010303 p->mark = _mark;
10304 void *_raw = primary_raw(p);
10305 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010306 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010307 _resmark = p->mark;
10308 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010310 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010311 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010312 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010313}
10314static expr_ty
10315primary_raw(Parser *p)
10316{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010317 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010320 return NULL;
10321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010322 expr_ty _res = NULL;
10323 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010324 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10325 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010326 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010327 return NULL;
10328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010329 int _start_lineno = p->tokens[_mark]->lineno;
10330 UNUSED(_start_lineno); // Only used by EXTRA macro
10331 int _start_col_offset = p->tokens[_mark]->col_offset;
10332 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020010333 if (p->call_invalid_rules) { // invalid_primary
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020010334 if (p->error_indicator) {
10335 D(p->level--);
10336 return NULL;
10337 }
10338 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10339 void *invalid_primary_var;
10340 if (
10341 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10342 )
10343 {
10344 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10345 _res = invalid_primary_var;
10346 goto done;
10347 }
10348 p->mark = _mark;
10349 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10351 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010352 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010353 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010354 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010355 return NULL;
10356 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010357 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010358 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010359 expr_ty a;
10360 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010361 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010362 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010363 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010364 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010365 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010366 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010367 )
10368 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010369 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010370 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10371 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010372 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010373 return NULL;
10374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010375 int _end_lineno = _token->end_lineno;
10376 UNUSED(_end_lineno); // Only used by EXTRA macro
10377 int _end_col_offset = _token->end_col_offset;
10378 UNUSED(_end_col_offset); // Only used by EXTRA macro
10379 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10380 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010381 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010382 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010383 return NULL;
10384 }
10385 goto done;
10386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010387 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010388 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010390 }
10391 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010393 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010394 return NULL;
10395 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010396 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010397 expr_ty a;
10398 expr_ty b;
10399 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010400 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010401 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010402 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010403 )
10404 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010405 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010406 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10407 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010408 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010409 return NULL;
10410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010411 int _end_lineno = _token->end_lineno;
10412 UNUSED(_end_lineno); // Only used by EXTRA macro
10413 int _end_col_offset = _token->end_col_offset;
10414 UNUSED(_end_col_offset); // Only used by EXTRA macro
10415 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10416 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010417 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010418 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010419 return NULL;
10420 }
10421 goto done;
10422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010423 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010424 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010426 }
10427 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010428 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010429 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010430 return NULL;
10431 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010432 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010433 Token * _literal;
10434 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010435 expr_ty a;
10436 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010437 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010438 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010439 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010440 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010441 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010442 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010444 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010445 )
10446 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010447 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010448 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10449 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010450 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010451 return NULL;
10452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010453 int _end_lineno = _token->end_lineno;
10454 UNUSED(_end_lineno); // Only used by EXTRA macro
10455 int _end_col_offset = _token->end_col_offset;
10456 UNUSED(_end_col_offset); // Only used by EXTRA macro
10457 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010461 return NULL;
10462 }
10463 goto done;
10464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010466 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010468 }
10469 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010471 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010472 return NULL;
10473 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010474 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010475 Token * _literal;
10476 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010477 expr_ty a;
10478 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010479 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010480 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010481 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010482 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010483 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010484 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010485 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010486 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010487 )
10488 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010489 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010490 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10491 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010492 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010493 return NULL;
10494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010495 int _end_lineno = _token->end_lineno;
10496 UNUSED(_end_lineno); // Only used by EXTRA macro
10497 int _end_col_offset = _token->end_col_offset;
10498 UNUSED(_end_col_offset); // Only used by EXTRA macro
10499 _res = _Py_Subscript ( a , b , Load , EXTRA );
10500 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010501 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010503 return NULL;
10504 }
10505 goto done;
10506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010507 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010508 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010510 }
10511 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010513 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010514 return NULL;
10515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010516 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010517 expr_ty atom_var;
10518 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010519 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010520 )
10521 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010522 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010523 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010524 goto done;
10525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010526 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010527 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010530 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010531 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010532 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010533 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010534}
10535
10536// slices: slice !',' | ','.slice+ ','?
10537static expr_ty
10538slices_rule(Parser *p)
10539{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010540 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010541 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010543 return NULL;
10544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010545 expr_ty _res = NULL;
10546 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010547 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10548 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010549 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010550 return NULL;
10551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010552 int _start_lineno = p->tokens[_mark]->lineno;
10553 UNUSED(_start_lineno); // Only used by EXTRA macro
10554 int _start_col_offset = p->tokens[_mark]->col_offset;
10555 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010556 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010559 return NULL;
10560 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010561 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010562 expr_ty a;
10563 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010564 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010565 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010566 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010567 )
10568 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010569 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010570 _res = a;
10571 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010572 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010573 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010574 return NULL;
10575 }
10576 goto done;
10577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010578 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010579 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010581 }
10582 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010584 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010585 return NULL;
10586 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010587 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010588 void *_opt_var;
10589 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010590 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010591 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010592 (a = _gather_94_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010593 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010594 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010595 )
10596 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010597 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010598 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10599 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010601 return NULL;
10602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010603 int _end_lineno = _token->end_lineno;
10604 UNUSED(_end_lineno); // Only used by EXTRA macro
10605 int _end_col_offset = _token->end_col_offset;
10606 UNUSED(_end_col_offset); // Only used by EXTRA macro
10607 _res = _Py_Tuple ( a , Load , EXTRA );
10608 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010609 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010611 return NULL;
10612 }
10613 goto done;
10614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010616 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010619 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010620 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010621 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010622 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010623}
10624
10625// slice: expression? ':' expression? [':' expression?] | expression
10626static expr_ty
10627slice_rule(Parser *p)
10628{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010629 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010632 return NULL;
10633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010634 expr_ty _res = NULL;
10635 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010636 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10637 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010639 return NULL;
10640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010641 int _start_lineno = p->tokens[_mark]->lineno;
10642 UNUSED(_start_lineno); // Only used by EXTRA macro
10643 int _start_col_offset = p->tokens[_mark]->col_offset;
10644 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010645 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010647 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010648 return NULL;
10649 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010650 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010651 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010652 void *a;
10653 void *b;
10654 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010655 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010656 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010657 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010658 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010659 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010660 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010661 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010662 (c = _tmp_96_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010663 )
10664 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010665 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 +010010666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10667 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010669 return NULL;
10670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010671 int _end_lineno = _token->end_lineno;
10672 UNUSED(_end_lineno); // Only used by EXTRA macro
10673 int _end_col_offset = _token->end_col_offset;
10674 UNUSED(_end_col_offset); // Only used by EXTRA macro
10675 _res = _Py_Slice ( a , b , c , EXTRA );
10676 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010677 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010679 return NULL;
10680 }
10681 goto done;
10682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010684 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010686 }
10687 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010688 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010689 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010690 return NULL;
10691 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010692 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010693 expr_ty a;
10694 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010695 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010696 )
10697 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010698 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010699 _res = a;
10700 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010701 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010702 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010703 return NULL;
10704 }
10705 goto done;
10706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010707 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010708 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010711 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010712 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010713 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010714 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010715}
10716
10717// atom:
10718// | NAME
10719// | 'True'
10720// | 'False'
10721// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010722// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010723// | &STRING strings
10724// | NUMBER
10725// | &'(' (tuple | group | genexp)
10726// | &'[' (list | listcomp)
10727// | &'{' (dict | set | dictcomp | setcomp)
10728// | '...'
10729static expr_ty
10730atom_rule(Parser *p)
10731{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010732 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010734 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010735 return NULL;
10736 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010737 expr_ty _res = NULL;
10738 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010739 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10740 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010742 return NULL;
10743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010744 int _start_lineno = p->tokens[_mark]->lineno;
10745 UNUSED(_start_lineno); // Only used by EXTRA macro
10746 int _start_col_offset = p->tokens[_mark]->col_offset;
10747 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010748 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010751 return NULL;
10752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010753 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010754 expr_ty name_var;
10755 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010756 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010757 )
10758 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010759 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010760 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010761 goto done;
10762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010764 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010766 }
10767 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010769 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010770 return NULL;
10771 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010772 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010773 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010774 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010775 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010776 )
10777 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010778 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10780 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010782 return NULL;
10783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010784 int _end_lineno = _token->end_lineno;
10785 UNUSED(_end_lineno); // Only used by EXTRA macro
10786 int _end_col_offset = _token->end_col_offset;
10787 UNUSED(_end_col_offset); // Only used by EXTRA macro
10788 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10789 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010790 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010791 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010792 return NULL;
10793 }
10794 goto done;
10795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010796 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010797 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010799 }
10800 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010803 return NULL;
10804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010805 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010806 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010807 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010808 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010809 )
10810 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010811 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010812 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10813 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010815 return NULL;
10816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010817 int _end_lineno = _token->end_lineno;
10818 UNUSED(_end_lineno); // Only used by EXTRA macro
10819 int _end_col_offset = _token->end_col_offset;
10820 UNUSED(_end_col_offset); // Only used by EXTRA macro
10821 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10822 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010823 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010825 return NULL;
10826 }
10827 goto done;
10828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010829 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010830 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010832 }
10833 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010835 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010836 return NULL;
10837 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010838 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010839 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010840 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010841 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010842 )
10843 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010844 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010845 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10846 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010848 return NULL;
10849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010850 int _end_lineno = _token->end_lineno;
10851 UNUSED(_end_lineno); // Only used by EXTRA macro
10852 int _end_col_offset = _token->end_col_offset;
10853 UNUSED(_end_col_offset); // Only used by EXTRA macro
10854 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10855 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010856 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010857 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010858 return NULL;
10859 }
10860 goto done;
10861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010862 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010863 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010865 }
Pablo Galindo37824972020-06-11 19:29:13 +010010866 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010867 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010868 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010869 return NULL;
10870 }
Pablo Galindo37824972020-06-11 19:29:13 +010010871 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010872 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010873 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010874 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010875 )
10876 {
Pablo Galindo37824972020-06-11 19:29:13 +010010877 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010878 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10879 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010880 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010881 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010882 return NULL;
10883 }
10884 goto done;
10885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010886 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010887 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010889 }
10890 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010893 return NULL;
10894 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010895 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010896 expr_ty strings_var;
10897 if (
10898 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10899 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010900 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010901 )
10902 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010903 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010904 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010905 goto done;
10906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010907 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010908 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010910 }
10911 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010913 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010914 return NULL;
10915 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010916 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010917 expr_ty number_var;
10918 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010919 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010920 )
10921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010922 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010923 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010924 goto done;
10925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010927 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010929 }
10930 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010933 return NULL;
10934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010935 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010936 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010937 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010938 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010939 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010940 (_tmp_97_var = _tmp_97_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010941 )
10942 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010943 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 +030010944 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010945 goto done;
10946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010947 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010948 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010950 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010951 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010953 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010954 return NULL;
10955 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010956 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010957 void *_tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010958 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010959 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010960 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010961 (_tmp_98_var = _tmp_98_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010962 )
10963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010964 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010965 _res = _tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010966 goto done;
10967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010969 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010971 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010972 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010975 return NULL;
10976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010977 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 +030010978 void *_tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010979 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010980 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010981 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010982 (_tmp_99_var = _tmp_99_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010983 )
10984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010985 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 +030010986 _res = _tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010987 goto done;
10988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010989 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010990 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010992 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010993 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010996 return NULL;
10997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010998 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010999 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011000 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011001 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011002 )
11003 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011004 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11006 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011007 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011008 return NULL;
11009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011010 int _end_lineno = _token->end_lineno;
11011 UNUSED(_end_lineno); // Only used by EXTRA macro
11012 int _end_col_offset = _token->end_col_offset;
11013 UNUSED(_end_col_offset); // Only used by EXTRA macro
11014 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
11015 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011016 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011017 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011018 return NULL;
11019 }
11020 goto done;
11021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011022 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011023 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011026 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011027 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011028 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011029 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011030}
11031
11032// strings: STRING+
11033static expr_ty
11034strings_rule(Parser *p)
11035{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011036 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011037 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011038 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011039 return NULL;
11040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011041 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011042 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11043 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011044 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011046 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011047 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011049 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011050 return NULL;
11051 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011052 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011053 asdl_seq * a;
11054 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011055 (a = _loop1_100_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011056 )
11057 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011058 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011059 _res = _PyPegen_concatenate_strings ( p , a );
11060 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011061 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011062 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011063 return NULL;
11064 }
11065 goto done;
11066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011067 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011068 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011071 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011072 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011073 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011074 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011075 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011076}
11077
11078// list: '[' star_named_expressions? ']'
11079static expr_ty
11080list_rule(Parser *p)
11081{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011082 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011085 return NULL;
11086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011087 expr_ty _res = NULL;
11088 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011089 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11090 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011091 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011092 return NULL;
11093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011094 int _start_lineno = p->tokens[_mark]->lineno;
11095 UNUSED(_start_lineno); // Only used by EXTRA macro
11096 int _start_col_offset = p->tokens[_mark]->col_offset;
11097 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011098 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011101 return NULL;
11102 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011103 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011104 Token * _literal;
11105 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011106 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011107 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011108 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011109 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011110 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011111 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011112 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011113 )
11114 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011115 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 +010011116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11117 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011119 return NULL;
11120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011121 int _end_lineno = _token->end_lineno;
11122 UNUSED(_end_lineno); // Only used by EXTRA macro
11123 int _end_col_offset = _token->end_col_offset;
11124 UNUSED(_end_col_offset); // Only used by EXTRA macro
11125 _res = _Py_List ( a , Load , EXTRA );
11126 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011127 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011129 return NULL;
11130 }
11131 goto done;
11132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011133 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011134 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011137 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011138 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011139 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011140 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011141}
11142
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011143// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011144static expr_ty
11145listcomp_rule(Parser *p)
11146{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011147 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011148 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011150 return NULL;
11151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011152 expr_ty _res = NULL;
11153 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011154 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11155 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011157 return NULL;
11158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011159 int _start_lineno = p->tokens[_mark]->lineno;
11160 UNUSED(_start_lineno); // Only used by EXTRA macro
11161 int _start_col_offset = p->tokens[_mark]->col_offset;
11162 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011163 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011164 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011165 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011166 return NULL;
11167 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011168 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11169 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011170 Token * _literal;
11171 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011172 expr_ty a;
11173 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011174 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011175 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011176 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011177 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011178 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011179 (_cut_var = 1)
11180 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011181 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011182 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011183 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011184 )
11185 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011186 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 +010011187 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11188 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011189 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011190 return NULL;
11191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011192 int _end_lineno = _token->end_lineno;
11193 UNUSED(_end_lineno); // Only used by EXTRA macro
11194 int _end_col_offset = _token->end_col_offset;
11195 UNUSED(_end_col_offset); // Only used by EXTRA macro
11196 _res = _Py_ListComp ( a , b , EXTRA );
11197 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011198 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011200 return NULL;
11201 }
11202 goto done;
11203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011204 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011205 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11207 if (_cut_var) {
11208 D(p->level--);
11209 return NULL;
11210 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011211 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011212 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011214 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011215 return NULL;
11216 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011217 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011218 void *invalid_comprehension_var;
11219 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011220 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011221 )
11222 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011223 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011224 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011225 goto done;
11226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011227 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011228 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011231 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011232 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011233 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011234 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011235}
11236
11237// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11238static expr_ty
11239tuple_rule(Parser *p)
11240{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011241 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011244 return NULL;
11245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011246 expr_ty _res = NULL;
11247 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011248 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11249 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011251 return NULL;
11252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011253 int _start_lineno = p->tokens[_mark]->lineno;
11254 UNUSED(_start_lineno); // Only used by EXTRA macro
11255 int _start_col_offset = p->tokens[_mark]->col_offset;
11256 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011257 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011258 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011259 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011260 return NULL;
11261 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011262 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 +010011263 Token * _literal;
11264 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011265 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011266 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011267 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011268 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011269 (a = _tmp_101_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011270 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011271 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011272 )
11273 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011274 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 +010011275 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11276 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011278 return NULL;
11279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011280 int _end_lineno = _token->end_lineno;
11281 UNUSED(_end_lineno); // Only used by EXTRA macro
11282 int _end_col_offset = _token->end_col_offset;
11283 UNUSED(_end_col_offset); // Only used by EXTRA macro
11284 _res = _Py_Tuple ( a , Load , EXTRA );
11285 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011286 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011288 return NULL;
11289 }
11290 goto done;
11291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011292 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011293 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011296 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011298 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011299 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011300}
11301
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011302// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011303static expr_ty
11304group_rule(Parser *p)
11305{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011306 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011308 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011309 return NULL;
11310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011311 expr_ty _res = NULL;
11312 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011313 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011316 return NULL;
11317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011318 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 +010011319 Token * _literal;
11320 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011321 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011322 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011323 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011324 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011325 (a = _tmp_102_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011326 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011327 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011328 )
11329 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011330 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 +010011331 _res = a;
11332 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011333 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011334 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011335 return NULL;
11336 }
11337 goto done;
11338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011339 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011340 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011342 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011343 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011344 if (p->error_indicator) {
11345 D(p->level--);
11346 return NULL;
11347 }
11348 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11349 void *invalid_group_var;
11350 if (
11351 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11352 )
11353 {
11354 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11355 _res = invalid_group_var;
11356 goto done;
11357 }
11358 p->mark = _mark;
11359 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011362 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011363 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011364 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011365 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011366}
11367
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011368// genexp: '(' expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011369static expr_ty
11370genexp_rule(Parser *p)
11371{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011372 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011375 return NULL;
11376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011377 expr_ty _res = NULL;
11378 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011379 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11380 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011381 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011382 return NULL;
11383 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011384 int _start_lineno = p->tokens[_mark]->lineno;
11385 UNUSED(_start_lineno); // Only used by EXTRA macro
11386 int _start_col_offset = p->tokens[_mark]->col_offset;
11387 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011388 { // '(' expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011389 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011390 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011391 return NULL;
11392 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011393 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11394 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011395 Token * _literal;
11396 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011397 expr_ty a;
11398 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011399 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011400 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011401 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011402 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011403 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011404 (_cut_var = 1)
11405 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011406 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011407 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011408 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011409 )
11410 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011411 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11413 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011415 return NULL;
11416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011417 int _end_lineno = _token->end_lineno;
11418 UNUSED(_end_lineno); // Only used by EXTRA macro
11419 int _end_col_offset = _token->end_col_offset;
11420 UNUSED(_end_col_offset); // Only used by EXTRA macro
11421 _res = _Py_GeneratorExp ( a , b , EXTRA );
11422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011425 return NULL;
11426 }
11427 goto done;
11428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011430 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11432 if (_cut_var) {
11433 D(p->level--);
11434 return NULL;
11435 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011436 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011437 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011440 return NULL;
11441 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011442 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011443 void *invalid_comprehension_var;
11444 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011445 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011446 )
11447 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011448 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011449 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011450 goto done;
11451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011452 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011453 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011456 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011457 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011458 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011459 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011460}
11461
11462// set: '{' expressions_list '}'
11463static expr_ty
11464set_rule(Parser *p)
11465{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011466 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011467 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011468 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011469 return NULL;
11470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011471 expr_ty _res = NULL;
11472 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011473 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11474 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011476 return NULL;
11477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011478 int _start_lineno = p->tokens[_mark]->lineno;
11479 UNUSED(_start_lineno); // Only used by EXTRA macro
11480 int _start_col_offset = p->tokens[_mark]->col_offset;
11481 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011482 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011484 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011485 return NULL;
11486 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011487 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011488 Token * _literal;
11489 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011490 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011491 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011492 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011493 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011494 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011495 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011496 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011497 )
11498 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011499 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011500 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11501 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503 return NULL;
11504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011505 int _end_lineno = _token->end_lineno;
11506 UNUSED(_end_lineno); // Only used by EXTRA macro
11507 int _end_col_offset = _token->end_col_offset;
11508 UNUSED(_end_col_offset); // Only used by EXTRA macro
11509 _res = _Py_Set ( a , EXTRA );
11510 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011511 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011513 return NULL;
11514 }
11515 goto done;
11516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011517 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011518 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011521 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011522 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011523 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011524 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011525}
11526
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011527// setcomp: '{' expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011528static expr_ty
11529setcomp_rule(Parser *p)
11530{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011531 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011533 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011534 return NULL;
11535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011536 expr_ty _res = NULL;
11537 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011538 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11539 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011540 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011541 return NULL;
11542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011543 int _start_lineno = p->tokens[_mark]->lineno;
11544 UNUSED(_start_lineno); // Only used by EXTRA macro
11545 int _start_col_offset = p->tokens[_mark]->col_offset;
11546 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011547 { // '{' expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011548 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011549 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011550 return NULL;
11551 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011552 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11553 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011554 Token * _literal;
11555 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011556 expr_ty a;
11557 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011558 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011559 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011560 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011561 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011562 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011563 (_cut_var = 1)
11564 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011565 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011566 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011567 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011568 )
11569 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011570 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 +010011571 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11572 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011573 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011574 return NULL;
11575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011576 int _end_lineno = _token->end_lineno;
11577 UNUSED(_end_lineno); // Only used by EXTRA macro
11578 int _end_col_offset = _token->end_col_offset;
11579 UNUSED(_end_col_offset); // Only used by EXTRA macro
11580 _res = _Py_SetComp ( a , b , EXTRA );
11581 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011582 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011584 return NULL;
11585 }
11586 goto done;
11587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011588 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011589 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11591 if (_cut_var) {
11592 D(p->level--);
11593 return NULL;
11594 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011595 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011596 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011599 return NULL;
11600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011601 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011602 void *invalid_comprehension_var;
11603 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011604 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011605 )
11606 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011607 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011608 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011609 goto done;
11610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011611 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011612 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011615 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011616 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011617 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011618 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011619}
11620
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011621// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011622static expr_ty
11623dict_rule(Parser *p)
11624{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011625 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011626 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011627 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011628 return NULL;
11629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011630 expr_ty _res = NULL;
11631 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011632 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11633 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011635 return NULL;
11636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011637 int _start_lineno = p->tokens[_mark]->lineno;
11638 UNUSED(_start_lineno); // Only used by EXTRA macro
11639 int _start_col_offset = p->tokens[_mark]->col_offset;
11640 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011641 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011644 return NULL;
11645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011646 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011647 Token * _literal;
11648 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011649 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011650 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011651 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011652 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011653 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011654 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011655 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011656 )
11657 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011658 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 +010011659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11660 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011662 return NULL;
11663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011664 int _end_lineno = _token->end_lineno;
11665 UNUSED(_end_lineno); // Only used by EXTRA macro
11666 int _end_col_offset = _token->end_col_offset;
11667 UNUSED(_end_col_offset); // Only used by EXTRA macro
11668 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11669 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011670 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011672 return NULL;
11673 }
11674 goto done;
11675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011676 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011677 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011680 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011681 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011682 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011683 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011684}
11685
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011686// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011687static expr_ty
11688dictcomp_rule(Parser *p)
11689{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011690 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011691 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011693 return NULL;
11694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011695 expr_ty _res = NULL;
11696 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011697 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11698 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011699 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011700 return NULL;
11701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011702 int _start_lineno = p->tokens[_mark]->lineno;
11703 UNUSED(_start_lineno); // Only used by EXTRA macro
11704 int _start_col_offset = p->tokens[_mark]->col_offset;
11705 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011706 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011708 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011709 return NULL;
11710 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011711 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 +010011712 Token * _literal;
11713 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011714 KeyValuePair* a;
11715 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011716 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011717 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011718 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011719 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011720 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011721 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011722 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011723 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011724 )
11725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011726 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 +010011727 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11728 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011729 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011730 return NULL;
11731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011732 int _end_lineno = _token->end_lineno;
11733 UNUSED(_end_lineno); // Only used by EXTRA macro
11734 int _end_col_offset = _token->end_col_offset;
11735 UNUSED(_end_col_offset); // Only used by EXTRA macro
11736 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11737 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011738 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011739 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011740 return NULL;
11741 }
11742 goto done;
11743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011744 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011745 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011747 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011748 if (p->call_invalid_rules) { // invalid_dict_comprehension
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011750 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011751 return NULL;
11752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011753 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 -070011754 void *invalid_dict_comprehension_var;
11755 if (
11756 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11757 )
11758 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011759 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 -070011760 _res = invalid_dict_comprehension_var;
11761 goto done;
11762 }
11763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011764 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011767 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011768 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011769 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011770 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011771}
11772
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011773// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011774static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011775double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011776{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011777 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011778 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011780 return NULL;
11781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011782 asdl_seq* _res = NULL;
11783 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011784 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011786 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011787 return NULL;
11788 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011789 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 +010011790 void *_opt_var;
11791 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011792 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011793 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011794 (a = _gather_103_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011795 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011796 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011797 )
11798 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011799 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 +010011800 _res = a;
11801 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011802 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011804 return NULL;
11805 }
11806 goto done;
11807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011808 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011809 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011812 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011813 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011815 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011816}
11817
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011818// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011819static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011820double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011821{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011822 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011825 return NULL;
11826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011827 KeyValuePair* _res = NULL;
11828 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011829 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011831 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011832 return NULL;
11833 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011834 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 +010011835 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011836 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011837 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011838 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011839 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011840 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011841 )
11842 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011843 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 +010011844 _res = _PyPegen_key_value_pair ( p , NULL , a );
11845 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011846 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011848 return NULL;
11849 }
11850 goto done;
11851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011852 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011853 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011855 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011856 { // kvpair
11857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011858 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011859 return NULL;
11860 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011861 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 -070011862 KeyValuePair* kvpair_var;
11863 if (
11864 (kvpair_var = kvpair_rule(p)) // kvpair
11865 )
11866 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011867 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 -070011868 _res = kvpair_var;
11869 goto done;
11870 }
11871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011872 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011874 }
11875 _res = NULL;
11876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011877 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011878 return _res;
11879}
11880
11881// kvpair: expression ':' expression
11882static KeyValuePair*
11883kvpair_rule(Parser *p)
11884{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011885 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011887 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011888 return NULL;
11889 }
11890 KeyValuePair* _res = NULL;
11891 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011892 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011894 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011895 return NULL;
11896 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011897 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011898 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011899 expr_ty a;
11900 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011901 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011902 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011903 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011904 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011905 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011906 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011907 )
11908 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011909 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011910 _res = _PyPegen_key_value_pair ( p , a , b );
11911 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011912 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011913 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011914 return NULL;
11915 }
11916 goto done;
11917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011918 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011919 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011922 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011923 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011924 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011925 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011926}
11927
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011928// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011929static asdl_seq*
11930for_if_clauses_rule(Parser *p)
11931{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011932 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011933 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011934 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011935 return NULL;
11936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011937 asdl_seq* _res = NULL;
11938 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011939 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011940 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011941 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011942 return NULL;
11943 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011944 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 +030011945 asdl_seq * _loop1_105_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011946 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011947 (_loop1_105_var = _loop1_105_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011948 )
11949 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011950 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 +030011951 _res = _loop1_105_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011952 goto done;
11953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011954 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011955 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011958 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011959 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011960 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011961 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011962}
11963
11964// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011965// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11966// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11967// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968static comprehension_ty
11969for_if_clause_rule(Parser *p)
11970{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011971 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011973 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011974 return NULL;
11975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011976 comprehension_ty _res = NULL;
11977 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011978 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011981 return NULL;
11982 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011983 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11984 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011985 Token * _keyword;
11986 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011987 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011988 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011989 expr_ty b;
11990 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011991 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011992 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011993 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011994 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011996 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011997 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011998 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011999 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012000 (_cut_var = 1)
12001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012002 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012003 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012004 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012005 )
12006 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012007 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 +010012008 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
12009 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012010 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012011 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012012 return NULL;
12013 }
12014 goto done;
12015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012016 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012017 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12019 if (_cut_var) {
12020 D(p->level--);
12021 return NULL;
12022 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012023 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012024 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012025 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012026 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012027 return NULL;
12028 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012029 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12030 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012031 Token * _keyword;
12032 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012033 expr_ty a;
12034 expr_ty b;
12035 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012036 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012037 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012038 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012039 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012040 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012041 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012042 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012043 (_cut_var = 1)
12044 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012045 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012046 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012047 (c = _loop0_107_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012048 )
12049 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012050 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 +010012051 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12052 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012053 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012055 return NULL;
12056 }
12057 goto done;
12058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012059 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012060 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12062 if (_cut_var) {
12063 D(p->level--);
12064 return NULL;
12065 }
12066 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012067 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012068 if (p->error_indicator) {
12069 D(p->level--);
12070 return NULL;
12071 }
12072 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12073 void *invalid_for_target_var;
12074 if (
12075 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12076 )
12077 {
12078 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12079 _res = invalid_for_target_var;
12080 goto done;
12081 }
12082 p->mark = _mark;
12083 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012086 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012087 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012088 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012089 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012090}
12091
12092// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12093static expr_ty
12094yield_expr_rule(Parser *p)
12095{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012096 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012098 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012099 return NULL;
12100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012101 expr_ty _res = NULL;
12102 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012103 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12104 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012105 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012106 return NULL;
12107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012108 int _start_lineno = p->tokens[_mark]->lineno;
12109 UNUSED(_start_lineno); // Only used by EXTRA macro
12110 int _start_col_offset = p->tokens[_mark]->col_offset;
12111 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012112 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012114 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012115 return NULL;
12116 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012117 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 +010012118 Token * _keyword;
12119 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012120 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012121 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012122 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012123 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012124 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012125 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012126 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012127 )
12128 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012129 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 +010012130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12131 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012132 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012133 return NULL;
12134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012135 int _end_lineno = _token->end_lineno;
12136 UNUSED(_end_lineno); // Only used by EXTRA macro
12137 int _end_col_offset = _token->end_col_offset;
12138 UNUSED(_end_col_offset); // Only used by EXTRA macro
12139 _res = _Py_YieldFrom ( a , EXTRA );
12140 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012141 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012142 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012143 return NULL;
12144 }
12145 goto done;
12146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012147 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012148 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012150 }
12151 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012153 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012154 return NULL;
12155 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012156 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 +010012157 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012158 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012159 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012160 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012161 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012162 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012163 )
12164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012165 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 +010012166 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12167 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012169 return NULL;
12170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012171 int _end_lineno = _token->end_lineno;
12172 UNUSED(_end_lineno); // Only used by EXTRA macro
12173 int _end_col_offset = _token->end_col_offset;
12174 UNUSED(_end_col_offset); // Only used by EXTRA macro
12175 _res = _Py_Yield ( a , EXTRA );
12176 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012177 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012178 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012179 return NULL;
12180 }
12181 goto done;
12182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012183 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012184 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012187 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012188 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012189 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012190 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012191}
12192
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012193// arguments: args ','? &')' | invalid_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012194static expr_ty
12195arguments_rule(Parser *p)
12196{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012197 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012200 return NULL;
12201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012202 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012203 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12204 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012205 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012207 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012208 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012210 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012211 return NULL;
12212 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012213 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012214 void *_opt_var;
12215 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012216 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012217 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012218 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012219 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012220 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012221 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012222 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012223 )
12224 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012225 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012226 _res = a;
12227 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012228 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012229 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012230 return NULL;
12231 }
12232 goto done;
12233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012235 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012237 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012238 if (p->call_invalid_rules) { // invalid_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012240 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012241 return NULL;
12242 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012243 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12244 void *invalid_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012245 if (
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012246 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012247 )
12248 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012249 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12250 _res = invalid_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012251 goto done;
12252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012253 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012254 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012257 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012258 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012259 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012260 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012261 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012262}
12263
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012264// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012265static expr_ty
12266args_rule(Parser *p)
12267{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012268 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012270 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012271 return NULL;
12272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012273 expr_ty _res = NULL;
12274 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012275 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12276 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012278 return NULL;
12279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012280 int _start_lineno = p->tokens[_mark]->lineno;
12281 UNUSED(_start_lineno); // Only used by EXTRA macro
12282 int _start_col_offset = p->tokens[_mark]->col_offset;
12283 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012284 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012286 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012287 return NULL;
12288 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012289 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
12290 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012291 void *b;
12292 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012293 (a = _gather_108_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012294 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012295 (b = _tmp_110_rule(p), 1) // [',' kwargs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012296 )
12297 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012298 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 +010012299 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12300 if (_token == NULL) {
12301 D(p->level--);
12302 return NULL;
12303 }
12304 int _end_lineno = _token->end_lineno;
12305 UNUSED(_end_lineno); // Only used by EXTRA macro
12306 int _end_col_offset = _token->end_col_offset;
12307 UNUSED(_end_col_offset); // Only used by EXTRA macro
12308 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012309 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012310 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012311 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012312 return NULL;
12313 }
12314 goto done;
12315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012316 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012317 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012319 }
12320 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012321 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012322 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012323 return NULL;
12324 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012325 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012326 asdl_seq* a;
12327 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012328 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012329 )
12330 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012331 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012332 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12333 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012334 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012335 return NULL;
12336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012337 int _end_lineno = _token->end_lineno;
12338 UNUSED(_end_lineno); // Only used by EXTRA macro
12339 int _end_col_offset = _token->end_col_offset;
12340 UNUSED(_end_col_offset); // Only used by EXTRA macro
12341 _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 );
12342 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012343 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012344 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012345 return NULL;
12346 }
12347 goto done;
12348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012349 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012350 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012353 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012354 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012355 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012356 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012357}
12358
12359// kwargs:
12360// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12361// | ','.kwarg_or_starred+
12362// | ','.kwarg_or_double_starred+
12363static asdl_seq*
12364kwargs_rule(Parser *p)
12365{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012366 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012367 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012368 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012369 return NULL;
12370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012371 asdl_seq* _res = NULL;
12372 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012373 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012375 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012376 return NULL;
12377 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012378 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 +010012379 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012380 asdl_seq * a;
12381 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012382 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012383 (a = _gather_111_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012384 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012385 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012386 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012387 (b = _gather_113_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012388 )
12389 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012390 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 +010012391 _res = _PyPegen_join_sequences ( p , a , b );
12392 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012393 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012395 return NULL;
12396 }
12397 goto done;
12398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012399 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012400 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012402 }
12403 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012405 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012406 return NULL;
12407 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012408 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012409 asdl_seq * _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012410 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012411 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012412 )
12413 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012414 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 +010012415 _res = _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012416 goto done;
12417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012418 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012419 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012421 }
12422 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012423 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012424 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012425 return NULL;
12426 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012427 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 +010012428 asdl_seq * _gather_117_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012429 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012430 (_gather_117_var = _gather_117_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012431 )
12432 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012433 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 +010012434 _res = _gather_117_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012435 goto done;
12436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012437 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012438 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012441 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012442 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012443 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012444 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012445}
12446
12447// starred_expression: '*' expression
12448static expr_ty
12449starred_expression_rule(Parser *p)
12450{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012451 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012454 return NULL;
12455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012456 expr_ty _res = NULL;
12457 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012458 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012461 return NULL;
12462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012463 int _start_lineno = p->tokens[_mark]->lineno;
12464 UNUSED(_start_lineno); // Only used by EXTRA macro
12465 int _start_col_offset = p->tokens[_mark]->col_offset;
12466 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012467 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012469 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012470 return NULL;
12471 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012472 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012473 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012474 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012475 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012476 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012477 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012478 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012479 )
12480 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012481 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012482 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12483 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012485 return NULL;
12486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012487 int _end_lineno = _token->end_lineno;
12488 UNUSED(_end_lineno); // Only used by EXTRA macro
12489 int _end_col_offset = _token->end_col_offset;
12490 UNUSED(_end_col_offset); // Only used by EXTRA macro
12491 _res = _Py_Starred ( a , Load , EXTRA );
12492 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012493 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012494 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012495 return NULL;
12496 }
12497 goto done;
12498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012499 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012500 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012503 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012504 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012505 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012506 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012507}
12508
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012509// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012510static KeywordOrStarred*
12511kwarg_or_starred_rule(Parser *p)
12512{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012513 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012514 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012516 return NULL;
12517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012518 KeywordOrStarred* _res = NULL;
12519 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12521 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012523 return NULL;
12524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012525 int _start_lineno = p->tokens[_mark]->lineno;
12526 UNUSED(_start_lineno); // Only used by EXTRA macro
12527 int _start_col_offset = p->tokens[_mark]->col_offset;
12528 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012529 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012532 return NULL;
12533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012534 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 +010012535 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012536 expr_ty a;
12537 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012538 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012539 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012540 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012541 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012542 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012543 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012544 )
12545 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012546 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 +010012547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12548 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012549 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012550 return NULL;
12551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012552 int _end_lineno = _token->end_lineno;
12553 UNUSED(_end_lineno); // Only used by EXTRA macro
12554 int _end_col_offset = _token->end_col_offset;
12555 UNUSED(_end_col_offset); // Only used by EXTRA macro
12556 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12557 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012558 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012560 return NULL;
12561 }
12562 goto done;
12563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012565 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012567 }
12568 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012569 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012570 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012571 return NULL;
12572 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012573 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 +010012574 expr_ty a;
12575 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012576 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012577 )
12578 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012579 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 +010012580 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12581 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012582 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012584 return NULL;
12585 }
12586 goto done;
12587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012588 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012589 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012591 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012592 if (p->call_invalid_rules) { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012595 return NULL;
12596 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012597 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 +030012598 void *invalid_kwarg_var;
12599 if (
12600 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12601 )
12602 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012603 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 +010012604 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012605 goto done;
12606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012607 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012608 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012611 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012612 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012613 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012614 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012615}
12616
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012617// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012618static KeywordOrStarred*
12619kwarg_or_double_starred_rule(Parser *p)
12620{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012621 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012623 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012624 return NULL;
12625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012626 KeywordOrStarred* _res = NULL;
12627 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012628 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012631 return NULL;
12632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012633 int _start_lineno = p->tokens[_mark]->lineno;
12634 UNUSED(_start_lineno); // Only used by EXTRA macro
12635 int _start_col_offset = p->tokens[_mark]->col_offset;
12636 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012637 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012639 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012640 return NULL;
12641 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012642 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 +010012643 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012644 expr_ty a;
12645 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012646 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012647 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012648 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012649 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012650 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012651 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012652 )
12653 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012654 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 +010012655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12656 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012658 return NULL;
12659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012660 int _end_lineno = _token->end_lineno;
12661 UNUSED(_end_lineno); // Only used by EXTRA macro
12662 int _end_col_offset = _token->end_col_offset;
12663 UNUSED(_end_col_offset); // Only used by EXTRA macro
12664 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12665 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012666 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012668 return NULL;
12669 }
12670 goto done;
12671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012672 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012673 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012675 }
12676 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012678 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012679 return NULL;
12680 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012681 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 +010012682 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012683 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012684 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012685 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012686 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012687 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012688 )
12689 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012690 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 +010012691 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12692 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012693 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012694 return NULL;
12695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012696 int _end_lineno = _token->end_lineno;
12697 UNUSED(_end_lineno); // Only used by EXTRA macro
12698 int _end_col_offset = _token->end_col_offset;
12699 UNUSED(_end_col_offset); // Only used by EXTRA macro
12700 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12701 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012702 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012703 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012704 return NULL;
12705 }
12706 goto done;
12707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012708 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012709 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012711 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012712 if (p->call_invalid_rules) { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012715 return NULL;
12716 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012717 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 +030012718 void *invalid_kwarg_var;
12719 if (
12720 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12721 )
12722 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012723 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 +010012724 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012725 goto done;
12726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012728 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012731 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012732 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012733 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012734 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012735}
12736
12737// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12738static expr_ty
12739star_targets_rule(Parser *p)
12740{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012741 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012743 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012744 return NULL;
12745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012746 expr_ty _res = NULL;
12747 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012748 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12749 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012751 return NULL;
12752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012753 int _start_lineno = p->tokens[_mark]->lineno;
12754 UNUSED(_start_lineno); // Only used by EXTRA macro
12755 int _start_col_offset = p->tokens[_mark]->col_offset;
12756 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012757 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012760 return NULL;
12761 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012762 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012763 expr_ty a;
12764 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012765 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012766 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012767 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012768 )
12769 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012770 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 +010012771 _res = a;
12772 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012773 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012774 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012775 return NULL;
12776 }
12777 goto done;
12778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012780 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012782 }
12783 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012785 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012786 return NULL;
12787 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012788 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 +010012789 void *_opt_var;
12790 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012791 expr_ty a;
12792 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012793 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012794 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012795 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012796 (b = _loop0_119_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012797 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012798 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012799 )
12800 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012801 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 +010012802 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12803 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012805 return NULL;
12806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012807 int _end_lineno = _token->end_lineno;
12808 UNUSED(_end_lineno); // Only used by EXTRA macro
12809 int _end_col_offset = _token->end_col_offset;
12810 UNUSED(_end_col_offset); // Only used by EXTRA macro
12811 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12812 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012813 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012815 return NULL;
12816 }
12817 goto done;
12818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012819 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012820 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012823 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012824 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012825 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012826 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012827}
12828
12829// star_targets_seq: ','.star_target+ ','?
12830static asdl_seq*
12831star_targets_seq_rule(Parser *p)
12832{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012833 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012836 return NULL;
12837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012838 asdl_seq* _res = NULL;
12839 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012840 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012843 return NULL;
12844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012845 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 +010012846 void *_opt_var;
12847 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012848 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012849 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012850 (a = _gather_120_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012851 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012852 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012853 )
12854 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012855 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 +010012856 _res = a;
12857 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012858 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012860 return NULL;
12861 }
12862 goto done;
12863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012864 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012865 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012868 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012869 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012870 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012871 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012872}
12873
12874// star_target:
12875// | '*' (!'*' star_target)
12876// | t_primary '.' NAME !t_lookahead
12877// | t_primary '[' slices ']' !t_lookahead
12878// | star_atom
12879static expr_ty
12880star_target_rule(Parser *p)
12881{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012882 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012885 return NULL;
12886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012887 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012888 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12889 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012890 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012892 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012893 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12894 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012895 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012896 return NULL;
12897 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012898 int _start_lineno = p->tokens[_mark]->lineno;
12899 UNUSED(_start_lineno); // Only used by EXTRA macro
12900 int _start_col_offset = p->tokens[_mark]->col_offset;
12901 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012902 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012903 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012904 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012905 return NULL;
12906 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012907 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012908 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012909 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012910 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012911 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012912 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012913 (a = _tmp_122_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012914 )
12915 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012916 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 +010012917 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12918 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012919 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012920 return NULL;
12921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012922 int _end_lineno = _token->end_lineno;
12923 UNUSED(_end_lineno); // Only used by EXTRA macro
12924 int _end_col_offset = _token->end_col_offset;
12925 UNUSED(_end_col_offset); // Only used by EXTRA macro
12926 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12927 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012928 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012930 return NULL;
12931 }
12932 goto done;
12933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012935 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012937 }
12938 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012940 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012941 return NULL;
12942 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012943 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 +010012944 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012945 expr_ty a;
12946 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012947 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012948 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012949 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012950 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012951 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012952 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012953 &&
12954 _PyPegen_lookahead(0, t_lookahead_rule, p)
12955 )
12956 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012957 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 +010012958 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12959 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012961 return NULL;
12962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012963 int _end_lineno = _token->end_lineno;
12964 UNUSED(_end_lineno); // Only used by EXTRA macro
12965 int _end_col_offset = _token->end_col_offset;
12966 UNUSED(_end_col_offset); // Only used by EXTRA macro
12967 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12968 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012969 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012970 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012971 return NULL;
12972 }
12973 goto done;
12974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012975 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012976 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012978 }
12979 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012980 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012981 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012982 return NULL;
12983 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012984 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 +010012985 Token * _literal;
12986 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012987 expr_ty a;
12988 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012989 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012990 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012991 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012992 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012994 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012995 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012996 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012997 &&
12998 _PyPegen_lookahead(0, t_lookahead_rule, p)
12999 )
13000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013001 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 +010013002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13003 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013005 return NULL;
13006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013007 int _end_lineno = _token->end_lineno;
13008 UNUSED(_end_lineno); // Only used by EXTRA macro
13009 int _end_col_offset = _token->end_col_offset;
13010 UNUSED(_end_col_offset); // Only used by EXTRA macro
13011 _res = _Py_Subscript ( a , b , Store , EXTRA );
13012 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013013 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013015 return NULL;
13016 }
13017 goto done;
13018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013019 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013020 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013022 }
13023 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013025 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013026 return NULL;
13027 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013028 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013029 expr_ty star_atom_var;
13030 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013031 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013032 )
13033 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013034 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 +010013035 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013036 goto done;
13037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013039 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013042 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013043 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013044 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013045 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013046 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013047}
13048
13049// star_atom:
13050// | NAME
13051// | '(' star_target ')'
13052// | '(' star_targets_seq? ')'
13053// | '[' star_targets_seq? ']'
13054static expr_ty
13055star_atom_rule(Parser *p)
13056{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013057 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013060 return NULL;
13061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013062 expr_ty _res = NULL;
13063 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013064 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13065 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013067 return NULL;
13068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013069 int _start_lineno = p->tokens[_mark]->lineno;
13070 UNUSED(_start_lineno); // Only used by EXTRA macro
13071 int _start_col_offset = p->tokens[_mark]->col_offset;
13072 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013073 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013074 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013075 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013076 return NULL;
13077 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013078 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013079 expr_ty a;
13080 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013081 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013082 )
13083 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013084 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013085 _res = _PyPegen_set_expr_context ( p , a , Store );
13086 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013087 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013088 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013089 return NULL;
13090 }
13091 goto done;
13092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013093 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013094 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013096 }
13097 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013098 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013099 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013100 return NULL;
13101 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013102 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013103 Token * _literal;
13104 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013105 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013106 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013107 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013108 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013109 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013110 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013111 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013112 )
13113 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013114 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 +010013115 _res = _PyPegen_set_expr_context ( p , a , Store );
13116 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013119 return NULL;
13120 }
13121 goto done;
13122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013123 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013124 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013126 }
13127 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013130 return NULL;
13131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013132 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 +010013133 Token * _literal;
13134 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013135 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013136 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013137 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013138 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013139 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013140 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013141 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013142 )
13143 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013144 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 +010013145 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13146 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013147 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013148 return NULL;
13149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013150 int _end_lineno = _token->end_lineno;
13151 UNUSED(_end_lineno); // Only used by EXTRA macro
13152 int _end_col_offset = _token->end_col_offset;
13153 UNUSED(_end_col_offset); // Only used by EXTRA macro
13154 _res = _Py_Tuple ( a , Store , EXTRA );
13155 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013156 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013157 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013158 return NULL;
13159 }
13160 goto done;
13161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013163 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013165 }
13166 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013169 return NULL;
13170 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013171 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 +010013172 Token * _literal;
13173 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013174 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013175 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013176 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013177 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013178 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013179 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013180 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 )
13182 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013183 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 +010013184 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13185 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013187 return NULL;
13188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013189 int _end_lineno = _token->end_lineno;
13190 UNUSED(_end_lineno); // Only used by EXTRA macro
13191 int _end_col_offset = _token->end_col_offset;
13192 UNUSED(_end_col_offset); // Only used by EXTRA macro
13193 _res = _Py_List ( a , Store , EXTRA );
13194 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013195 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013196 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013197 return NULL;
13198 }
13199 goto done;
13200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013201 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013202 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013205 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013206 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013207 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013208 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013209}
13210
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013211// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013212static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013213single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013214{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013215 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013218 return NULL;
13219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013220 expr_ty _res = NULL;
13221 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013222 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013225 return NULL;
13226 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013227 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 +030013228 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013229 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013230 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013231 )
13232 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013233 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 +030013234 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013235 goto done;
13236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013237 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013238 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013240 }
13241 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013243 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013244 return NULL;
13245 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013246 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013247 expr_ty a;
13248 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013249 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013250 )
13251 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013252 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013253 _res = _PyPegen_set_expr_context ( p , a , Store );
13254 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013255 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013256 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013257 return NULL;
13258 }
13259 goto done;
13260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013262 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013264 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013265 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013268 return NULL;
13269 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013270 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013271 Token * _literal;
13272 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013273 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013274 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013275 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013276 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013277 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013278 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013279 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013280 )
13281 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013282 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 +010013283 _res = a;
13284 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013285 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013287 return NULL;
13288 }
13289 goto done;
13290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013291 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013292 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013295 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013296 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013297 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013298 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013299}
13300
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013301// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013302// | t_primary '.' NAME !t_lookahead
13303// | t_primary '[' slices ']' !t_lookahead
13304static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013305single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013307 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013310 return NULL;
13311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013312 expr_ty _res = NULL;
13313 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013314 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013317 return NULL;
13318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013319 int _start_lineno = p->tokens[_mark]->lineno;
13320 UNUSED(_start_lineno); // Only used by EXTRA macro
13321 int _start_col_offset = p->tokens[_mark]->col_offset;
13322 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013323 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013325 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013326 return NULL;
13327 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013328 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 +010013329 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013330 expr_ty a;
13331 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013333 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013334 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013335 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013336 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013337 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013338 &&
13339 _PyPegen_lookahead(0, t_lookahead_rule, p)
13340 )
13341 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013342 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 +010013343 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13344 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013346 return NULL;
13347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013348 int _end_lineno = _token->end_lineno;
13349 UNUSED(_end_lineno); // Only used by EXTRA macro
13350 int _end_col_offset = _token->end_col_offset;
13351 UNUSED(_end_col_offset); // Only used by EXTRA macro
13352 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13353 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013354 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013355 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013356 return NULL;
13357 }
13358 goto done;
13359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013360 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013361 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013363 }
13364 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013365 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013366 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013367 return NULL;
13368 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013369 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 +010013370 Token * _literal;
13371 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013372 expr_ty a;
13373 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013375 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013376 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013377 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013378 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013379 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013380 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013381 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013382 &&
13383 _PyPegen_lookahead(0, t_lookahead_rule, p)
13384 )
13385 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013386 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 +010013387 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13388 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013389 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013390 return NULL;
13391 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013392 int _end_lineno = _token->end_lineno;
13393 UNUSED(_end_lineno); // Only used by EXTRA macro
13394 int _end_col_offset = _token->end_col_offset;
13395 UNUSED(_end_col_offset); // Only used by EXTRA macro
13396 _res = _Py_Subscript ( a , b , Store , EXTRA );
13397 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013398 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013400 return NULL;
13401 }
13402 goto done;
13403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013404 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013405 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013408 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013409 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013410 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013411 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013412}
13413
13414// del_targets: ','.del_target+ ','?
13415static asdl_seq*
13416del_targets_rule(Parser *p)
13417{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013418 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013419 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013421 return NULL;
13422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013423 asdl_seq* _res = NULL;
13424 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013425 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013427 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013428 return NULL;
13429 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013430 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013431 void *_opt_var;
13432 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013433 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013434 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010013435 (a = _gather_123_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013436 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013437 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013438 )
13439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013440 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 +010013441 _res = a;
13442 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013444 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013445 return NULL;
13446 }
13447 goto done;
13448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013450 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013453 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013454 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013455 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013456 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013457}
13458
13459// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013460// | t_primary '.' NAME !t_lookahead
13461// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013462// | del_t_atom
13463static expr_ty
13464del_target_rule(Parser *p)
13465{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013466 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013467 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013468 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013469 return NULL;
13470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013471 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013472 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13473 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013474 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013476 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13478 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013480 return NULL;
13481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013482 int _start_lineno = p->tokens[_mark]->lineno;
13483 UNUSED(_start_lineno); // Only used by EXTRA macro
13484 int _start_col_offset = p->tokens[_mark]->col_offset;
13485 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013486 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013489 return NULL;
13490 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013491 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 +010013492 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013493 expr_ty a;
13494 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013495 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013496 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013497 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013498 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013499 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013500 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013501 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013502 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013503 )
13504 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013505 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 +010013506 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13507 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013508 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013509 return NULL;
13510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013511 int _end_lineno = _token->end_lineno;
13512 UNUSED(_end_lineno); // Only used by EXTRA macro
13513 int _end_col_offset = _token->end_col_offset;
13514 UNUSED(_end_col_offset); // Only used by EXTRA macro
13515 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13516 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013517 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013519 return NULL;
13520 }
13521 goto done;
13522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013523 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013524 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013526 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013527 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013530 return NULL;
13531 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013532 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 +010013533 Token * _literal;
13534 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013535 expr_ty a;
13536 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013537 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013538 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013539 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013540 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013541 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013542 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013543 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013544 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013545 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013546 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013547 )
13548 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013549 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 +010013550 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13551 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013553 return NULL;
13554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013555 int _end_lineno = _token->end_lineno;
13556 UNUSED(_end_lineno); // Only used by EXTRA macro
13557 int _end_col_offset = _token->end_col_offset;
13558 UNUSED(_end_col_offset); // Only used by EXTRA macro
13559 _res = _Py_Subscript ( a , b , Del , EXTRA );
13560 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013561 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013562 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013563 return NULL;
13564 }
13565 goto done;
13566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013567 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013568 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013570 }
13571 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013573 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013574 return NULL;
13575 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013576 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 +010013577 expr_ty del_t_atom_var;
13578 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013579 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013580 )
13581 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013582 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 +010013583 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013584 goto done;
13585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013586 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013587 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013590 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013591 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013592 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013593 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013594 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013595}
13596
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013597// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013598static expr_ty
13599del_t_atom_rule(Parser *p)
13600{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013601 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013604 return NULL;
13605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013606 expr_ty _res = NULL;
13607 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013608 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13609 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013611 return NULL;
13612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013613 int _start_lineno = p->tokens[_mark]->lineno;
13614 UNUSED(_start_lineno); // Only used by EXTRA macro
13615 int _start_col_offset = p->tokens[_mark]->col_offset;
13616 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013617 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013620 return NULL;
13621 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013622 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013623 expr_ty a;
13624 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013625 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013626 )
13627 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013628 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 +010013629 _res = _PyPegen_set_expr_context ( p , a , Del );
13630 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013633 return NULL;
13634 }
13635 goto done;
13636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013637 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013638 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013640 }
13641 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013644 return NULL;
13645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013646 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 +010013647 Token * _literal;
13648 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013649 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013650 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013651 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013652 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013653 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013654 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013655 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013656 )
13657 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013658 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 +010013659 _res = _PyPegen_set_expr_context ( p , a , Del );
13660 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013661 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013663 return NULL;
13664 }
13665 goto done;
13666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013667 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013668 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013670 }
13671 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013674 return NULL;
13675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013676 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 +010013677 Token * _literal;
13678 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013679 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013680 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013681 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013682 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013683 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013684 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013685 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013686 )
13687 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013688 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 +010013689 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13690 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013692 return NULL;
13693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013694 int _end_lineno = _token->end_lineno;
13695 UNUSED(_end_lineno); // Only used by EXTRA macro
13696 int _end_col_offset = _token->end_col_offset;
13697 UNUSED(_end_col_offset); // Only used by EXTRA macro
13698 _res = _Py_Tuple ( a , Del , EXTRA );
13699 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013700 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013701 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013702 return NULL;
13703 }
13704 goto done;
13705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013706 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013707 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013709 }
13710 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013712 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013713 return NULL;
13714 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013715 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 +010013716 Token * _literal;
13717 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013718 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013719 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013720 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013721 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013722 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013723 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013724 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 )
13726 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013727 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 +010013728 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13729 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013731 return NULL;
13732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013733 int _end_lineno = _token->end_lineno;
13734 UNUSED(_end_lineno); // Only used by EXTRA macro
13735 int _end_col_offset = _token->end_col_offset;
13736 UNUSED(_end_col_offset); // Only used by EXTRA macro
13737 _res = _Py_List ( a , Del , EXTRA );
13738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013741 return NULL;
13742 }
13743 goto done;
13744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013746 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013753}
13754
13755// targets: ','.target+ ','?
13756static asdl_seq*
13757targets_rule(Parser *p)
13758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013762 return NULL;
13763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013764 asdl_seq* _res = NULL;
13765 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013766 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013769 return NULL;
13770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013771 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013772 void *_opt_var;
13773 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013774 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013775 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010013776 (a = _gather_125_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013777 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013778 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013779 )
13780 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013781 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013782 _res = a;
13783 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013784 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013786 return NULL;
13787 }
13788 goto done;
13789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013790 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013791 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013794 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013795 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013796 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013797 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013798}
13799
13800// target:
13801// | t_primary '.' NAME !t_lookahead
13802// | t_primary '[' slices ']' !t_lookahead
13803// | t_atom
13804static expr_ty
13805target_rule(Parser *p)
13806{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013807 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013809 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013810 return NULL;
13811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013812 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013813 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013815 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013817 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013818 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13819 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013821 return NULL;
13822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013823 int _start_lineno = p->tokens[_mark]->lineno;
13824 UNUSED(_start_lineno); // Only used by EXTRA macro
13825 int _start_col_offset = p->tokens[_mark]->col_offset;
13826 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013827 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013829 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013830 return NULL;
13831 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013832 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 +010013833 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013834 expr_ty a;
13835 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013836 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013837 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013838 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013839 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013840 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013841 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013842 &&
13843 _PyPegen_lookahead(0, t_lookahead_rule, p)
13844 )
13845 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013846 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 +010013847 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13848 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013850 return NULL;
13851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013852 int _end_lineno = _token->end_lineno;
13853 UNUSED(_end_lineno); // Only used by EXTRA macro
13854 int _end_col_offset = _token->end_col_offset;
13855 UNUSED(_end_col_offset); // Only used by EXTRA macro
13856 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13857 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013858 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013860 return NULL;
13861 }
13862 goto done;
13863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013864 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013865 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013867 }
13868 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013869 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013870 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013871 return NULL;
13872 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013873 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 +010013874 Token * _literal;
13875 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013876 expr_ty a;
13877 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013878 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013879 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013880 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013881 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013882 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013883 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013884 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013885 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013886 &&
13887 _PyPegen_lookahead(0, t_lookahead_rule, p)
13888 )
13889 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013890 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 +010013891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13892 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013893 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013894 return NULL;
13895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013896 int _end_lineno = _token->end_lineno;
13897 UNUSED(_end_lineno); // Only used by EXTRA macro
13898 int _end_col_offset = _token->end_col_offset;
13899 UNUSED(_end_col_offset); // Only used by EXTRA macro
13900 _res = _Py_Subscript ( a , b , Store , EXTRA );
13901 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013902 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013904 return NULL;
13905 }
13906 goto done;
13907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013908 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013909 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013911 }
13912 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013913 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013914 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013915 return NULL;
13916 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013917 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013918 expr_ty t_atom_var;
13919 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013920 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013921 )
13922 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013923 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013924 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013925 goto done;
13926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013927 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013928 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013931 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013932 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013933 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013934 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013935 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013936}
13937
13938// Left-recursive
13939// t_primary:
13940// | t_primary '.' NAME &t_lookahead
13941// | t_primary '[' slices ']' &t_lookahead
13942// | t_primary genexp &t_lookahead
13943// | t_primary '(' arguments? ')' &t_lookahead
13944// | atom &t_lookahead
13945static expr_ty t_primary_raw(Parser *);
13946static expr_ty
13947t_primary_rule(Parser *p)
13948{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013949 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013950 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013951 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13952 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013953 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013955 int _mark = p->mark;
13956 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013957 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013958 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013959 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013960 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013961 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013963 p->mark = _mark;
13964 void *_raw = t_primary_raw(p);
13965 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013966 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013967 _resmark = p->mark;
13968 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013970 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013971 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013972 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973}
13974static expr_ty
13975t_primary_raw(Parser *p)
13976{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013977 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013980 return NULL;
13981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013982 expr_ty _res = NULL;
13983 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13985 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013987 return NULL;
13988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013989 int _start_lineno = p->tokens[_mark]->lineno;
13990 UNUSED(_start_lineno); // Only used by EXTRA macro
13991 int _start_col_offset = p->tokens[_mark]->col_offset;
13992 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013993 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013996 return NULL;
13997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013998 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 +010013999 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014000 expr_ty a;
14001 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014002 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014003 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014004 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014005 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014006 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014007 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014008 &&
14009 _PyPegen_lookahead(1, t_lookahead_rule, p)
14010 )
14011 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014012 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 +010014013 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14014 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014015 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014016 return NULL;
14017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014018 int _end_lineno = _token->end_lineno;
14019 UNUSED(_end_lineno); // Only used by EXTRA macro
14020 int _end_col_offset = _token->end_col_offset;
14021 UNUSED(_end_col_offset); // Only used by EXTRA macro
14022 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14023 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014024 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014026 return NULL;
14027 }
14028 goto done;
14029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014030 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014031 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014033 }
14034 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014036 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014037 return NULL;
14038 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014039 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 +010014040 Token * _literal;
14041 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014042 expr_ty a;
14043 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014044 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014045 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014046 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014047 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014048 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014049 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014050 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014051 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014052 &&
14053 _PyPegen_lookahead(1, t_lookahead_rule, p)
14054 )
14055 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014056 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 +010014057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14058 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014060 return NULL;
14061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014062 int _end_lineno = _token->end_lineno;
14063 UNUSED(_end_lineno); // Only used by EXTRA macro
14064 int _end_col_offset = _token->end_col_offset;
14065 UNUSED(_end_col_offset); // Only used by EXTRA macro
14066 _res = _Py_Subscript ( a , b , Load , EXTRA );
14067 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014068 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014070 return NULL;
14071 }
14072 goto done;
14073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014074 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014075 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014077 }
14078 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014080 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014081 return NULL;
14082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014083 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 +010014084 expr_ty a;
14085 expr_ty b;
14086 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014087 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014088 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014089 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014090 &&
14091 _PyPegen_lookahead(1, t_lookahead_rule, p)
14092 )
14093 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014094 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 +010014095 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14096 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014098 return NULL;
14099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014100 int _end_lineno = _token->end_lineno;
14101 UNUSED(_end_lineno); // Only used by EXTRA macro
14102 int _end_col_offset = _token->end_col_offset;
14103 UNUSED(_end_col_offset); // Only used by EXTRA macro
14104 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14105 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014106 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014107 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014108 return NULL;
14109 }
14110 goto done;
14111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014112 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014113 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014115 }
14116 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014119 return NULL;
14120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014121 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 +010014122 Token * _literal;
14123 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014124 expr_ty a;
14125 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014126 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014127 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014128 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014129 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014130 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014131 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014132 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014133 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014134 &&
14135 _PyPegen_lookahead(1, t_lookahead_rule, p)
14136 )
14137 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014138 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 +010014139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14140 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014141 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014142 return NULL;
14143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014144 int _end_lineno = _token->end_lineno;
14145 UNUSED(_end_lineno); // Only used by EXTRA macro
14146 int _end_col_offset = _token->end_col_offset;
14147 UNUSED(_end_col_offset); // Only used by EXTRA macro
14148 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14149 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014150 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014152 return NULL;
14153 }
14154 goto done;
14155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014156 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014157 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014159 }
14160 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014162 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014163 return NULL;
14164 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014165 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 +010014166 expr_ty a;
14167 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014168 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014169 &&
14170 _PyPegen_lookahead(1, t_lookahead_rule, p)
14171 )
14172 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014173 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 +010014174 _res = a;
14175 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014176 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014177 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014178 return NULL;
14179 }
14180 goto done;
14181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014182 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014183 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014186 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014187 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014188 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014189 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014190}
14191
14192// t_lookahead: '(' | '[' | '.'
14193static void *
14194t_lookahead_rule(Parser *p)
14195{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014196 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014198 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014199 return NULL;
14200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014201 void * _res = NULL;
14202 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014203 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014205 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014206 return NULL;
14207 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014208 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014209 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014210 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014211 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014212 )
14213 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014214 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014215 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014216 goto done;
14217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014218 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014219 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014221 }
14222 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014225 return NULL;
14226 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014227 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014228 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014229 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014230 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014231 )
14232 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014233 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014234 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014235 goto done;
14236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014237 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014238 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014240 }
14241 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014243 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014244 return NULL;
14245 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014246 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014247 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014248 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014249 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014250 )
14251 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014252 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014253 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014254 goto done;
14255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014256 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014257 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014260 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014261 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014262 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014263 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014264}
14265
14266// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14267static expr_ty
14268t_atom_rule(Parser *p)
14269{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014270 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014271 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014272 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014273 return NULL;
14274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014275 expr_ty _res = NULL;
14276 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014277 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14278 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014280 return NULL;
14281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014282 int _start_lineno = p->tokens[_mark]->lineno;
14283 UNUSED(_start_lineno); // Only used by EXTRA macro
14284 int _start_col_offset = p->tokens[_mark]->col_offset;
14285 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014286 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014288 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014289 return NULL;
14290 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014291 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014292 expr_ty a;
14293 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014294 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014295 )
14296 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014297 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014298 _res = _PyPegen_set_expr_context ( p , a , Store );
14299 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014300 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014302 return NULL;
14303 }
14304 goto done;
14305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014307 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014309 }
14310 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014313 return NULL;
14314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014315 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014316 Token * _literal;
14317 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014318 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014319 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014320 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014321 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014322 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014323 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014324 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014325 )
14326 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014327 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014328 _res = _PyPegen_set_expr_context ( p , a , Store );
14329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014332 return NULL;
14333 }
14334 goto done;
14335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014336 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014337 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014339 }
14340 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014342 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014343 return NULL;
14344 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014345 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014346 Token * _literal;
14347 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014348 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014349 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014350 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014351 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014352 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014353 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014354 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014355 )
14356 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014357 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14359 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014361 return NULL;
14362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014363 int _end_lineno = _token->end_lineno;
14364 UNUSED(_end_lineno); // Only used by EXTRA macro
14365 int _end_col_offset = _token->end_col_offset;
14366 UNUSED(_end_col_offset); // Only used by EXTRA macro
14367 _res = _Py_Tuple ( b , Store , EXTRA );
14368 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014369 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014371 return NULL;
14372 }
14373 goto done;
14374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014376 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014378 }
14379 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014381 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014382 return NULL;
14383 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014384 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014385 Token * _literal;
14386 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014387 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014388 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014389 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014390 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014391 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014392 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014393 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014394 )
14395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014396 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014397 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14398 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014400 return NULL;
14401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014402 int _end_lineno = _token->end_lineno;
14403 UNUSED(_end_lineno); // Only used by EXTRA macro
14404 int _end_col_offset = _token->end_col_offset;
14405 UNUSED(_end_col_offset); // Only used by EXTRA macro
14406 _res = _Py_List ( b , Store , EXTRA );
14407 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014408 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014409 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014410 return NULL;
14411 }
14412 goto done;
14413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014414 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014415 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014418 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014419 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014420 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014421 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014422}
14423
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014424// invalid_arguments:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014425// | args ',' '*'
14426// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014427// | args for_if_clauses
14428// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014429// | args ',' args
14430static void *
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014431invalid_arguments_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014432{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014433 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014436 return NULL;
14437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014438 void * _res = NULL;
14439 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014440 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014443 return NULL;
14444 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014445 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014446 Token * _literal;
14447 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014448 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014449 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014450 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014451 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014452 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014453 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014454 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014455 )
14456 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014457 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014458 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14459 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014460 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014461 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014462 return NULL;
14463 }
14464 goto done;
14465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014466 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014467 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014469 }
14470 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014472 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014473 return NULL;
14474 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014475 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 +010014476 Token * _literal;
14477 void *_opt_var;
14478 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014479 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014480 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014481 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014482 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014483 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014484 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014485 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014486 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014487 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014488 (_opt_var = _tmp_127_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014489 )
14490 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014491 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 +030014492 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014493 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014494 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014496 return NULL;
14497 }
14498 goto done;
14499 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014500 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014501 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014503 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014504 { // args for_if_clauses
14505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014506 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014507 return NULL;
14508 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014509 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 -070014510 expr_ty a;
14511 asdl_seq* for_if_clauses_var;
14512 if (
14513 (a = args_rule(p)) // args
14514 &&
14515 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14516 )
14517 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014518 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 -070014519 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14520 if (_res == NULL && PyErr_Occurred()) {
14521 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014522 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014523 return NULL;
14524 }
14525 goto done;
14526 }
14527 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014528 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014530 }
14531 { // args ',' expression for_if_clauses
14532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014533 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014534 return NULL;
14535 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014536 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 -070014537 Token * _literal;
14538 expr_ty a;
14539 expr_ty args_var;
14540 asdl_seq* for_if_clauses_var;
14541 if (
14542 (args_var = args_rule(p)) // args
14543 &&
14544 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14545 &&
14546 (a = expression_rule(p)) // expression
14547 &&
14548 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14549 )
14550 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014551 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 -070014552 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14553 if (_res == NULL && PyErr_Occurred()) {
14554 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014555 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014556 return NULL;
14557 }
14558 goto done;
14559 }
14560 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014561 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014563 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014564 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014566 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014567 return NULL;
14568 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014569 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014570 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014571 expr_ty a;
14572 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014573 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014574 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014575 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014576 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014577 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014578 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014579 )
14580 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014581 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 +010014582 _res = _PyPegen_arguments_parsing_error ( p , a );
14583 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014586 return NULL;
14587 }
14588 goto done;
14589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014590 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014591 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014594 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014595 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014596 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014597 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014598}
14599
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014600// invalid_kwarg: expression '='
14601static void *
14602invalid_kwarg_rule(Parser *p)
14603{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014604 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014606 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014607 return NULL;
14608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014609 void * _res = NULL;
14610 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014611 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014613 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014614 return NULL;
14615 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014616 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014617 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014618 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014619 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014620 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014621 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014622 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014623 )
14624 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014625 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014626 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014627 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014628 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014629 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014630 return NULL;
14631 }
14632 goto done;
14633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014634 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014635 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014638 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014639 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014640 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014641 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014642}
14643
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014644// invalid_named_expression: expression ':=' expression
14645static void *
14646invalid_named_expression_rule(Parser *p)
14647{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014648 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014650 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014651 return NULL;
14652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014653 void * _res = NULL;
14654 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014655 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014657 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014658 return NULL;
14659 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014660 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 +010014661 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014662 expr_ty a;
14663 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014664 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014665 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014666 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014667 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014668 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014669 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014670 )
14671 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014672 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 +030014673 _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 +010014674 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014675 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014676 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014677 return NULL;
14678 }
14679 goto done;
14680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014681 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014682 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014685 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014686 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014687 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014688 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014689}
14690
14691// invalid_assignment:
Pablo Galindo102ca522020-06-28 00:40:41 +010014692// | invalid_ann_assign_target ':' expression
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014693// | star_named_expression ',' star_named_expressions* ':' expression
14694// | expression ':' expression
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014695// | ((star_targets '='))* star_expressions '='
14696// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014697// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014698static void *
14699invalid_assignment_rule(Parser *p)
14700{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014701 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014702 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014703 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014704 return NULL;
14705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014706 void * _res = NULL;
14707 int _mark = p->mark;
Pablo Galindo102ca522020-06-28 00:40:41 +010014708 { // invalid_ann_assign_target ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014709 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014710 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014711 return NULL;
14712 }
Pablo Galindo102ca522020-06-28 00:40:41 +010014713 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 +010014714 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014715 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014716 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014717 if (
Pablo Galindo102ca522020-06-28 00:40:41 +010014718 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014719 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014720 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014721 &&
14722 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014723 )
14724 {
Pablo Galindo102ca522020-06-28 00:40:41 +010014725 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14726 _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 +010014727 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014728 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014729 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014730 return NULL;
14731 }
14732 goto done;
14733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014735 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo102ca522020-06-28 00:40:41 +010014736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014737 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014738 { // star_named_expression ',' star_named_expressions* ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014740 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014741 return NULL;
14742 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014743 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 +030014744 Token * _literal;
14745 Token * _literal_1;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014746 asdl_seq * _loop0_128_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014747 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014748 expr_ty expression_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014749 if (
14750 (a = star_named_expression_rule(p)) // star_named_expression
14751 &&
14752 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14753 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014754 (_loop0_128_var = _loop0_128_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014755 &&
14756 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014757 &&
14758 (expression_var = expression_rule(p)) // expression
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014759 )
14760 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014761 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 +030014762 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014763 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014764 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014766 return NULL;
14767 }
14768 goto done;
14769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014770 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014771 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014773 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014774 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014776 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014777 return NULL;
14778 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014779 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014780 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014781 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014782 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014783 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014784 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014785 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014786 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014787 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014788 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014789 )
14790 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014791 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 +030014792 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014793 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014796 return NULL;
14797 }
14798 goto done;
14799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014801 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014803 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014804 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014807 return NULL;
14808 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014809 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 +010014810 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014811 asdl_seq * _loop0_129_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014812 expr_ty a;
14813 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014814 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014815 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014816 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014817 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014818 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014819 )
14820 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014821 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 +030014822 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014823 if (_res == NULL && PyErr_Occurred()) {
14824 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014825 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014826 return NULL;
14827 }
14828 goto done;
14829 }
14830 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014831 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14833 }
14834 { // ((star_targets '='))* yield_expr '='
14835 if (p->error_indicator) {
14836 D(p->level--);
14837 return NULL;
14838 }
14839 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14840 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014841 asdl_seq * _loop0_130_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014842 expr_ty a;
14843 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014844 (_loop0_130_var = _loop0_130_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014845 &&
14846 (a = yield_expr_rule(p)) // yield_expr
14847 &&
14848 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14849 )
14850 {
14851 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14852 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14853 if (_res == NULL && PyErr_Occurred()) {
14854 p->error_indicator = 1;
14855 D(p->level--);
14856 return NULL;
14857 }
14858 goto done;
14859 }
14860 p->mark = _mark;
14861 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014863 }
14864 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014866 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014867 return NULL;
14868 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014869 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 +010014870 void *_tmp_131_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014871 expr_ty a;
14872 AugOperator* augassign_var;
14873 if (
14874 (a = star_expressions_rule(p)) // star_expressions
14875 &&
14876 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014877 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014878 (_tmp_131_var = _tmp_131_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014879 )
14880 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014881 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 +010014882 _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 +010014883 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014884 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014885 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014886 return NULL;
14887 }
14888 goto done;
14889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014890 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014891 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014894 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014895 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014896 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014897 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014898}
14899
Pablo Galindo102ca522020-06-28 00:40:41 +010014900// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14901static expr_ty
14902invalid_ann_assign_target_rule(Parser *p)
14903{
14904 D(p->level++);
14905 if (p->error_indicator) {
14906 D(p->level--);
14907 return NULL;
14908 }
14909 expr_ty _res = NULL;
14910 int _mark = p->mark;
14911 { // list
14912 if (p->error_indicator) {
14913 D(p->level--);
14914 return NULL;
14915 }
14916 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14917 expr_ty list_var;
14918 if (
14919 (list_var = list_rule(p)) // list
14920 )
14921 {
14922 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14923 _res = list_var;
14924 goto done;
14925 }
14926 p->mark = _mark;
14927 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14929 }
14930 { // tuple
14931 if (p->error_indicator) {
14932 D(p->level--);
14933 return NULL;
14934 }
14935 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14936 expr_ty tuple_var;
14937 if (
14938 (tuple_var = tuple_rule(p)) // tuple
14939 )
14940 {
14941 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
14942 _res = tuple_var;
14943 goto done;
14944 }
14945 p->mark = _mark;
14946 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
14948 }
14949 { // '(' invalid_ann_assign_target ')'
14950 if (p->error_indicator) {
14951 D(p->level--);
14952 return NULL;
14953 }
14954 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14955 Token * _literal;
14956 Token * _literal_1;
14957 expr_ty a;
14958 if (
14959 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14960 &&
14961 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
14962 &&
14963 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14964 )
14965 {
14966 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14967 _res = a;
14968 if (_res == NULL && PyErr_Occurred()) {
14969 p->error_indicator = 1;
14970 D(p->level--);
14971 return NULL;
14972 }
14973 goto done;
14974 }
14975 p->mark = _mark;
14976 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14978 }
14979 _res = NULL;
14980 done:
14981 D(p->level--);
14982 return _res;
14983}
14984
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014985// invalid_del_stmt: 'del' star_expressions
14986static void *
14987invalid_del_stmt_rule(Parser *p)
14988{
14989 D(p->level++);
14990 if (p->error_indicator) {
14991 D(p->level--);
14992 return NULL;
14993 }
14994 void * _res = NULL;
14995 int _mark = p->mark;
14996 { // 'del' star_expressions
14997 if (p->error_indicator) {
14998 D(p->level--);
14999 return NULL;
15000 }
15001 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15002 Token * _keyword;
15003 expr_ty a;
15004 if (
15005 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15006 &&
15007 (a = star_expressions_rule(p)) // star_expressions
15008 )
15009 {
15010 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 +030015011 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015012 if (_res == NULL && PyErr_Occurred()) {
15013 p->error_indicator = 1;
15014 D(p->level--);
15015 return NULL;
15016 }
15017 goto done;
15018 }
15019 p->mark = _mark;
15020 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15022 }
15023 _res = NULL;
15024 done:
15025 D(p->level--);
15026 return _res;
15027}
15028
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015029// invalid_block: NEWLINE !INDENT
15030static void *
15031invalid_block_rule(Parser *p)
15032{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015033 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015034 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015036 return NULL;
15037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015038 void * _res = NULL;
15039 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015040 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015042 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015043 return NULL;
15044 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015045 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015046 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015047 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015048 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015049 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015050 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015051 )
15052 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015053 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 +010015054 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15055 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015056 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015057 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015058 return NULL;
15059 }
15060 goto done;
15061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015062 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015063 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015066 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015067 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015068 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015069 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015070}
15071
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020015072// Left-recursive
15073// invalid_primary: primary '{'
15074static void *
15075invalid_primary_rule(Parser *p)
15076{
15077 D(p->level++);
15078 if (p->error_indicator) {
15079 D(p->level--);
15080 return NULL;
15081 }
15082 void * _res = NULL;
15083 int _mark = p->mark;
15084 { // primary '{'
15085 if (p->error_indicator) {
15086 D(p->level--);
15087 return NULL;
15088 }
15089 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15090 Token * a;
15091 expr_ty primary_var;
15092 if (
15093 (primary_var = primary_rule(p)) // primary
15094 &&
15095 (a = _PyPegen_expect_token(p, 25)) // token='{'
15096 )
15097 {
15098 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15099 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15100 if (_res == NULL && PyErr_Occurred()) {
15101 p->error_indicator = 1;
15102 D(p->level--);
15103 return NULL;
15104 }
15105 goto done;
15106 }
15107 p->mark = _mark;
15108 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15110 }
15111 _res = NULL;
15112 done:
15113 D(p->level--);
15114 return _res;
15115}
15116
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015117// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015118static void *
15119invalid_comprehension_rule(Parser *p)
15120{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015121 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015124 return NULL;
15125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015126 void * _res = NULL;
15127 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015128 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015131 return NULL;
15132 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015133 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 +010015134 void *_tmp_132_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015135 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015136 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015137 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015138 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015139 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015140 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015141 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015142 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015143 )
15144 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015145 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 +030015146 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015147 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015148 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015150 return NULL;
15151 }
15152 goto done;
15153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015154 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015155 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015158 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015159 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015160 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015161 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015162}
15163
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015164// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15165static void *
15166invalid_dict_comprehension_rule(Parser *p)
15167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015168 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015170 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015171 return NULL;
15172 }
15173 void * _res = NULL;
15174 int _mark = p->mark;
15175 { // '{' '**' bitwise_or for_if_clauses '}'
15176 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015177 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015178 return NULL;
15179 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015180 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 -070015181 Token * _literal;
15182 Token * _literal_1;
15183 Token * a;
15184 expr_ty bitwise_or_var;
15185 asdl_seq* for_if_clauses_var;
15186 if (
15187 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15188 &&
15189 (a = _PyPegen_expect_token(p, 35)) // token='**'
15190 &&
15191 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15192 &&
15193 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15194 &&
15195 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15196 )
15197 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015198 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 -070015199 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15200 if (_res == NULL && PyErr_Occurred()) {
15201 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015202 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015203 return NULL;
15204 }
15205 goto done;
15206 }
15207 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015208 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015210 }
15211 _res = NULL;
15212 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015213 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015214 return _res;
15215}
15216
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015217// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015218// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015219static void *
15220invalid_parameters_rule(Parser *p)
15221{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015222 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015225 return NULL;
15226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015227 void * _res = NULL;
15228 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015229 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015232 return NULL;
15233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015234 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 +010015235 asdl_seq * _loop0_133_var;
15236 void *_tmp_134_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015237 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015238 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015239 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015240 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015241 (_tmp_134_var = _tmp_134_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015242 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015243 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015244 )
15245 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015246 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 +010015247 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15248 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015249 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015251 return NULL;
15252 }
15253 goto done;
15254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015256 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15257 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 +010015258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015259 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015260 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015262 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015263}
15264
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015265// invalid_lambda_parameters:
15266// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15267static void *
15268invalid_lambda_parameters_rule(Parser *p)
15269{
15270 D(p->level++);
15271 if (p->error_indicator) {
15272 D(p->level--);
15273 return NULL;
15274 }
15275 void * _res = NULL;
15276 int _mark = p->mark;
15277 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15278 if (p->error_indicator) {
15279 D(p->level--);
15280 return NULL;
15281 }
15282 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 +010015283 asdl_seq * _loop0_135_var;
15284 void *_tmp_136_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015285 arg_ty lambda_param_no_default_var;
15286 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015287 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015288 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015289 (_tmp_136_var = _tmp_136_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015290 &&
15291 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15292 )
15293 {
15294 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"));
15295 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15296 if (_res == NULL && PyErr_Occurred()) {
15297 p->error_indicator = 1;
15298 D(p->level--);
15299 return NULL;
15300 }
15301 goto done;
15302 }
15303 p->mark = _mark;
15304 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15306 }
15307 _res = NULL;
15308 done:
15309 D(p->level--);
15310 return _res;
15311}
15312
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015313// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015314static void *
15315invalid_star_etc_rule(Parser *p)
15316{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015317 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015319 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015320 return NULL;
15321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015322 void * _res = NULL;
15323 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015324 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015327 return NULL;
15328 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015329 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015330 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015331 void *_tmp_137_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015332 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015333 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015334 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015335 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015336 )
15337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015338 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015339 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15340 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015341 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015342 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015343 return NULL;
15344 }
15345 goto done;
15346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015347 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015348 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015350 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015351 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015353 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015354 return NULL;
15355 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015356 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 +030015357 Token * _literal;
15358 Token * _literal_1;
15359 Token * type_comment_var;
15360 if (
15361 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15362 &&
15363 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15364 &&
15365 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15366 )
15367 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015368 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 +030015369 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15370 if (_res == NULL && PyErr_Occurred()) {
15371 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015372 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015373 return NULL;
15374 }
15375 goto done;
15376 }
15377 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015378 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015381 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015382 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015383 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015384 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015385}
15386
15387// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15388static void *
15389invalid_lambda_star_etc_rule(Parser *p)
15390{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015391 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015393 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015394 return NULL;
15395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015396 void * _res = NULL;
15397 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015398 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015399 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015400 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015401 return NULL;
15402 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015403 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015404 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015405 void *_tmp_138_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015406 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015407 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015408 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015409 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015410 )
15411 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015412 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 +010015413 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15414 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015415 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015416 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015417 return NULL;
15418 }
15419 goto done;
15420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015421 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015422 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015425 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015426 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015427 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015428 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015429}
15430
Guido van Rossumc001c092020-04-30 12:12:19 -070015431// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15432static void *
15433invalid_double_type_comments_rule(Parser *p)
15434{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015435 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015436 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015437 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015438 return NULL;
15439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015440 void * _res = NULL;
15441 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015442 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015443 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015444 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015445 return NULL;
15446 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015447 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 +010015448 Token * indent_var;
15449 Token * newline_var;
15450 Token * newline_var_1;
15451 Token * type_comment_var;
15452 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015453 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015454 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015455 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015456 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015457 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015458 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015459 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015460 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015461 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015462 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015463 )
15464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015465 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 +010015466 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15467 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015468 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015469 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015470 return NULL;
15471 }
15472 goto done;
15473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015475 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015478 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015479 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015480 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015481 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015482}
15483
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015484// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015485static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015486invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015487{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015488 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015490 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015491 return NULL;
15492 }
15493 void * _res = NULL;
15494 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015495 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015496 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015497 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015498 return NULL;
15499 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015500 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15501 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015502 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015503 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015504 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015505 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015506 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015507 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15508 &&
15509 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015510 )
15511 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015512 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 +030015513 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Shantanu27c0d9b2020-05-11 14:53:58 -070015514 if (_res == NULL && PyErr_Occurred()) {
15515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015516 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015517 return NULL;
15518 }
15519 goto done;
15520 }
15521 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015522 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15524 }
15525 _res = NULL;
15526 done:
15527 D(p->level--);
15528 return _res;
15529}
15530
15531// invalid_for_target: ASYNC? 'for' star_expressions
15532static void *
15533invalid_for_target_rule(Parser *p)
15534{
15535 D(p->level++);
15536 if (p->error_indicator) {
15537 D(p->level--);
15538 return NULL;
15539 }
15540 void * _res = NULL;
15541 int _mark = p->mark;
15542 { // ASYNC? 'for' star_expressions
15543 if (p->error_indicator) {
15544 D(p->level--);
15545 return NULL;
15546 }
15547 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15548 Token * _keyword;
15549 void *_opt_var;
15550 UNUSED(_opt_var); // Silence compiler warnings
15551 expr_ty a;
15552 if (
15553 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15554 &&
15555 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15556 &&
15557 (a = star_expressions_rule(p)) // star_expressions
15558 )
15559 {
15560 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 +030015561 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015562 if (_res == NULL && PyErr_Occurred()) {
15563 p->error_indicator = 1;
15564 D(p->level--);
15565 return NULL;
15566 }
15567 goto done;
15568 }
15569 p->mark = _mark;
15570 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15572 }
15573 _res = NULL;
15574 done:
15575 D(p->level--);
15576 return _res;
15577}
15578
15579// invalid_group: '(' starred_expression ')'
15580static void *
15581invalid_group_rule(Parser *p)
15582{
15583 D(p->level++);
15584 if (p->error_indicator) {
15585 D(p->level--);
15586 return NULL;
15587 }
15588 void * _res = NULL;
15589 int _mark = p->mark;
15590 { // '(' starred_expression ')'
15591 if (p->error_indicator) {
15592 D(p->level--);
15593 return NULL;
15594 }
15595 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15596 Token * _literal;
15597 Token * _literal_1;
15598 expr_ty a;
15599 if (
15600 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15601 &&
15602 (a = starred_expression_rule(p)) // starred_expression
15603 &&
15604 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15605 )
15606 {
15607 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15608 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15609 if (_res == NULL && PyErr_Occurred()) {
15610 p->error_indicator = 1;
15611 D(p->level--);
15612 return NULL;
15613 }
15614 goto done;
15615 }
15616 p->mark = _mark;
15617 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015619 }
15620 _res = NULL;
15621 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015622 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015623 return _res;
15624}
15625
Pablo Galindo275d7e12020-05-21 22:04:54 +010015626// invalid_import_from_targets: import_from_as_names ','
15627static void *
15628invalid_import_from_targets_rule(Parser *p)
15629{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015630 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015632 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015633 return NULL;
15634 }
15635 void * _res = NULL;
15636 int _mark = p->mark;
15637 { // import_from_as_names ','
15638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015639 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015640 return NULL;
15641 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015642 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 +010015643 Token * _literal;
15644 asdl_seq* import_from_as_names_var;
15645 if (
15646 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15647 &&
15648 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15649 )
15650 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015651 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 +010015652 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15653 if (_res == NULL && PyErr_Occurred()) {
15654 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015655 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015656 return NULL;
15657 }
15658 goto done;
15659 }
15660 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015661 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015663 }
15664 _res = NULL;
15665 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015666 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015667 return _res;
15668}
15669
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015670// _loop0_1: NEWLINE
15671static asdl_seq *
15672_loop0_1_rule(Parser *p)
15673{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015674 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015676 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015677 return NULL;
15678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015679 void *_res = NULL;
15680 int _mark = p->mark;
15681 int _start_mark = p->mark;
15682 void **_children = PyMem_Malloc(sizeof(void *));
15683 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015684 p->error_indicator = 1;
15685 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015686 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015687 return NULL;
15688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015689 ssize_t _children_capacity = 1;
15690 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015691 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015692 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015693 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015694 return NULL;
15695 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015696 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015697 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015698 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015699 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015700 )
15701 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015702 _res = newline_var;
15703 if (_n == _children_capacity) {
15704 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015705 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15706 if (!_new_children) {
15707 p->error_indicator = 1;
15708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015710 return NULL;
15711 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015712 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015714 _children[_n++] = _res;
15715 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015717 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015718 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015721 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15722 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015723 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015724 p->error_indicator = 1;
15725 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015727 return NULL;
15728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015729 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15730 PyMem_Free(_children);
15731 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015732 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015733 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015734}
15735
Guido van Rossumc001c092020-04-30 12:12:19 -070015736// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015737static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015738_loop0_2_rule(Parser *p)
15739{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015740 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015742 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015743 return NULL;
15744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015745 void *_res = NULL;
15746 int _mark = p->mark;
15747 int _start_mark = p->mark;
15748 void **_children = PyMem_Malloc(sizeof(void *));
15749 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015750 p->error_indicator = 1;
15751 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015752 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015753 return NULL;
15754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015755 ssize_t _children_capacity = 1;
15756 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015757 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015760 return NULL;
15761 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015762 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015763 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015764 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015765 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015766 )
15767 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015768 _res = newline_var;
15769 if (_n == _children_capacity) {
15770 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015771 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15772 if (!_new_children) {
15773 p->error_indicator = 1;
15774 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015775 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015776 return NULL;
15777 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015778 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015780 _children[_n++] = _res;
15781 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015784 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015787 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15788 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015789 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015790 p->error_indicator = 1;
15791 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015792 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015793 return NULL;
15794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015795 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15796 PyMem_Free(_children);
15797 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015798 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015799 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015800}
15801
15802// _loop0_4: ',' expression
15803static asdl_seq *
15804_loop0_4_rule(Parser *p)
15805{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015806 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015807 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015808 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015809 return NULL;
15810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015811 void *_res = NULL;
15812 int _mark = p->mark;
15813 int _start_mark = p->mark;
15814 void **_children = PyMem_Malloc(sizeof(void *));
15815 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015816 p->error_indicator = 1;
15817 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015818 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015819 return NULL;
15820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015821 ssize_t _children_capacity = 1;
15822 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015823 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015825 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015826 return NULL;
15827 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015828 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015829 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015830 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015831 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015832 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015833 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015834 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015835 )
15836 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015837 _res = elem;
15838 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015839 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015840 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015841 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015842 return NULL;
15843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015844 if (_n == _children_capacity) {
15845 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015846 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15847 if (!_new_children) {
15848 p->error_indicator = 1;
15849 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015850 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015851 return NULL;
15852 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015853 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015855 _children[_n++] = _res;
15856 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015858 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015859 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015862 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15863 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015864 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015865 p->error_indicator = 1;
15866 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015867 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015868 return NULL;
15869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015870 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15871 PyMem_Free(_children);
15872 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015873 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015874 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015875}
15876
15877// _gather_3: expression _loop0_4
15878static asdl_seq *
15879_gather_3_rule(Parser *p)
15880{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015881 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015883 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015884 return NULL;
15885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015886 asdl_seq * _res = NULL;
15887 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015888 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015890 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015891 return NULL;
15892 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015893 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 -070015894 expr_ty elem;
15895 asdl_seq * seq;
15896 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015897 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015898 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015899 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015900 )
15901 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015902 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 +010015903 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015904 goto done;
15905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015906 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015907 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015910 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015911 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015912 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015913 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015914}
15915
15916// _loop0_6: ',' expression
15917static asdl_seq *
15918_loop0_6_rule(Parser *p)
15919{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015920 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015922 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015923 return NULL;
15924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015925 void *_res = NULL;
15926 int _mark = p->mark;
15927 int _start_mark = p->mark;
15928 void **_children = PyMem_Malloc(sizeof(void *));
15929 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015930 p->error_indicator = 1;
15931 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015932 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015933 return NULL;
15934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015935 ssize_t _children_capacity = 1;
15936 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015937 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015939 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015940 return NULL;
15941 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015942 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015943 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015944 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015945 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015946 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015947 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015948 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015949 )
15950 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015951 _res = elem;
15952 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015953 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015954 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015955 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015956 return NULL;
15957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015958 if (_n == _children_capacity) {
15959 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015960 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15961 if (!_new_children) {
15962 p->error_indicator = 1;
15963 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015964 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015965 return NULL;
15966 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015967 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015969 _children[_n++] = _res;
15970 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015972 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015973 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015976 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15977 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015978 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015979 p->error_indicator = 1;
15980 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015981 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015982 return NULL;
15983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015984 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15985 PyMem_Free(_children);
15986 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015987 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015988 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015989}
15990
15991// _gather_5: expression _loop0_6
15992static asdl_seq *
15993_gather_5_rule(Parser *p)
15994{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015995 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015997 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015998 return NULL;
15999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016000 asdl_seq * _res = NULL;
16001 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016002 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016004 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016005 return NULL;
16006 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016007 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 -070016008 expr_ty elem;
16009 asdl_seq * seq;
16010 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016011 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016012 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016013 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070016014 )
16015 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016016 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 +010016017 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016018 goto done;
16019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016020 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016021 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016024 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016025 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016026 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016027 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016028}
16029
16030// _loop0_8: ',' expression
16031static asdl_seq *
16032_loop0_8_rule(Parser *p)
16033{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016034 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016036 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016037 return NULL;
16038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016039 void *_res = NULL;
16040 int _mark = p->mark;
16041 int _start_mark = p->mark;
16042 void **_children = PyMem_Malloc(sizeof(void *));
16043 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016044 p->error_indicator = 1;
16045 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016046 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016047 return NULL;
16048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016049 ssize_t _children_capacity = 1;
16050 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016051 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016053 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016054 return NULL;
16055 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016056 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016057 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016058 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016059 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016060 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016062 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016063 )
16064 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016065 _res = elem;
16066 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016067 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016068 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016069 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016070 return NULL;
16071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016072 if (_n == _children_capacity) {
16073 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016074 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16075 if (!_new_children) {
16076 p->error_indicator = 1;
16077 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016078 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016079 return NULL;
16080 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016081 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016083 _children[_n++] = _res;
16084 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016086 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016087 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016090 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16091 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016092 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016093 p->error_indicator = 1;
16094 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016095 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016096 return NULL;
16097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016098 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16099 PyMem_Free(_children);
16100 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016101 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016102 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016103}
16104
16105// _gather_7: expression _loop0_8
16106static asdl_seq *
16107_gather_7_rule(Parser *p)
16108{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016109 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016111 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016112 return NULL;
16113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016114 asdl_seq * _res = NULL;
16115 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016116 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016119 return NULL;
16120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016121 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 -070016122 expr_ty elem;
16123 asdl_seq * seq;
16124 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016125 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016126 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016127 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016128 )
16129 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016130 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 +010016131 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016132 goto done;
16133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016135 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016138 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016139 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016140 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016141 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016142}
16143
16144// _loop0_10: ',' expression
16145static asdl_seq *
16146_loop0_10_rule(Parser *p)
16147{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016148 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016150 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016151 return NULL;
16152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016153 void *_res = NULL;
16154 int _mark = p->mark;
16155 int _start_mark = p->mark;
16156 void **_children = PyMem_Malloc(sizeof(void *));
16157 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016158 p->error_indicator = 1;
16159 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016160 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016161 return NULL;
16162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016163 ssize_t _children_capacity = 1;
16164 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016165 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016167 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016168 return NULL;
16169 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016170 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016171 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016172 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016173 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016174 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016175 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016176 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016177 )
16178 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016179 _res = elem;
16180 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016181 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016182 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016183 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016184 return NULL;
16185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016186 if (_n == _children_capacity) {
16187 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016188 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16189 if (!_new_children) {
16190 p->error_indicator = 1;
16191 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016192 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016193 return NULL;
16194 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016195 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016197 _children[_n++] = _res;
16198 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016200 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016201 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016204 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16205 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016206 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016207 p->error_indicator = 1;
16208 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016209 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016210 return NULL;
16211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016212 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16213 PyMem_Free(_children);
16214 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016215 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016216 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016217}
16218
16219// _gather_9: expression _loop0_10
16220static asdl_seq *
16221_gather_9_rule(Parser *p)
16222{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016223 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016225 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016226 return NULL;
16227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016228 asdl_seq * _res = NULL;
16229 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016230 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016232 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016233 return NULL;
16234 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016235 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 -070016236 expr_ty elem;
16237 asdl_seq * seq;
16238 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016239 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016240 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016241 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016242 )
16243 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016244 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 +010016245 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016246 goto done;
16247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016248 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016249 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016252 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016253 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016254 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016255 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016256}
16257
16258// _loop1_11: statement
16259static asdl_seq *
16260_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016261{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016262 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016265 return NULL;
16266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016267 void *_res = NULL;
16268 int _mark = p->mark;
16269 int _start_mark = p->mark;
16270 void **_children = PyMem_Malloc(sizeof(void *));
16271 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016272 p->error_indicator = 1;
16273 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016275 return NULL;
16276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016277 ssize_t _children_capacity = 1;
16278 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016279 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016281 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016282 return NULL;
16283 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016284 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016285 asdl_seq* statement_var;
16286 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016287 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016288 )
16289 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016290 _res = statement_var;
16291 if (_n == _children_capacity) {
16292 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016293 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16294 if (!_new_children) {
16295 p->error_indicator = 1;
16296 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016298 return NULL;
16299 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016300 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016302 _children[_n++] = _res;
16303 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016305 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016306 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016309 if (_n == 0 || p->error_indicator) {
16310 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016311 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016312 return NULL;
16313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016314 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16315 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016316 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016317 p->error_indicator = 1;
16318 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016320 return NULL;
16321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016322 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16323 PyMem_Free(_children);
16324 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016325 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016326 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016327}
16328
Guido van Rossumc001c092020-04-30 12:12:19 -070016329// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016330static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016331_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016332{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016333 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016336 return NULL;
16337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016338 void *_res = NULL;
16339 int _mark = p->mark;
16340 int _start_mark = p->mark;
16341 void **_children = PyMem_Malloc(sizeof(void *));
16342 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016343 p->error_indicator = 1;
16344 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016346 return NULL;
16347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016348 ssize_t _children_capacity = 1;
16349 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016350 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016352 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016353 return NULL;
16354 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016355 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016356 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016357 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016358 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016359 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016360 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016361 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016362 )
16363 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016364 _res = elem;
16365 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016366 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016367 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016368 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016369 return NULL;
16370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016371 if (_n == _children_capacity) {
16372 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016373 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16374 if (!_new_children) {
16375 p->error_indicator = 1;
16376 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016378 return NULL;
16379 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016380 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016382 _children[_n++] = _res;
16383 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016385 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016386 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016389 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16390 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016391 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016392 p->error_indicator = 1;
16393 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016395 return NULL;
16396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016397 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16398 PyMem_Free(_children);
16399 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016400 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016401 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016402}
16403
Guido van Rossumc001c092020-04-30 12:12:19 -070016404// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016405static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016406_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016407{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016408 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016411 return NULL;
16412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016413 asdl_seq * _res = NULL;
16414 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016415 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016418 return NULL;
16419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016420 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 +010016421 stmt_ty elem;
16422 asdl_seq * seq;
16423 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016424 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016426 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016427 )
16428 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016429 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 +010016430 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016431 goto done;
16432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016433 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016434 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016437 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016438 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016439 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016440 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016441}
16442
Guido van Rossumc001c092020-04-30 12:12:19 -070016443// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016444static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016445_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016446{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016447 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016450 return NULL;
16451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016452 void * _res = NULL;
16453 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016454 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016457 return NULL;
16458 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016459 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016460 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016461 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016462 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016463 )
16464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016465 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016466 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016467 goto done;
16468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016470 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016472 }
16473 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016475 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016476 return NULL;
16477 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016478 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016479 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016480 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016481 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016482 )
16483 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016484 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016485 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016486 goto done;
16487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016489 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016496}
16497
Guido van Rossumc001c092020-04-30 12:12:19 -070016498// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016499static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016500_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016505 return NULL;
16506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016507 void * _res = NULL;
16508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016509 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016511 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016512 return NULL;
16513 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016514 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016515 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016516 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016517 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016518 )
16519 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016520 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016521 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016522 goto done;
16523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016524 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016525 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016527 }
16528 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016529 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016530 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016531 return NULL;
16532 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016533 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016534 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016535 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016536 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016537 )
16538 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016539 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016540 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016541 goto done;
16542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016543 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016544 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016546 }
16547 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016548 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016549 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016550 return NULL;
16551 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016552 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016553 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016554 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016555 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016556 )
16557 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016558 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016559 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016560 goto done;
16561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016562 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016563 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016566 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016567 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016568 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016569 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016570}
16571
Guido van Rossumc001c092020-04-30 12:12:19 -070016572// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016573static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016574_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016575{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016576 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016578 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016579 return NULL;
16580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016581 void * _res = NULL;
16582 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016583 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016585 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016586 return NULL;
16587 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016588 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016589 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016590 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016591 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016592 )
16593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016594 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016595 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016596 goto done;
16597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016598 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016599 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016601 }
16602 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016605 return NULL;
16606 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016607 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016608 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016609 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016610 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016611 )
16612 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016613 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016614 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016615 goto done;
16616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016617 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016618 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016621 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016622 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016623 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016624 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016625}
16626
Guido van Rossumc001c092020-04-30 12:12:19 -070016627// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016628static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016629_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016630{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016631 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016632 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016633 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016634 return NULL;
16635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016636 void * _res = NULL;
16637 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016638 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016639 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016640 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016641 return NULL;
16642 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016643 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016644 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016645 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016646 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016647 )
16648 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016649 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016650 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016651 goto done;
16652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016653 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016654 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016656 }
16657 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016659 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016660 return NULL;
16661 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016662 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016663 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016664 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016665 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016666 )
16667 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016668 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016669 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016670 goto done;
16671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016672 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016673 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016676 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016677 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016678 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016679 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016680}
16681
Guido van Rossumc001c092020-04-30 12:12:19 -070016682// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016683static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016684_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016685{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016686 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016688 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016689 return NULL;
16690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016691 void * _res = NULL;
16692 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016693 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016694 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016695 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016696 return NULL;
16697 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016698 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016699 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016700 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016701 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016702 )
16703 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016704 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016705 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016706 goto done;
16707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016708 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016709 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016711 }
16712 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016715 return NULL;
16716 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016717 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016718 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016719 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016720 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016721 )
16722 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016723 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016724 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016725 goto done;
16726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016728 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016731 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016732 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016733 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016734 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016735}
16736
Guido van Rossumc001c092020-04-30 12:12:19 -070016737// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016738static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016739_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016740{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016741 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016743 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016744 return NULL;
16745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016746 void * _res = NULL;
16747 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016748 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016751 return NULL;
16752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016753 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016754 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016755 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016756 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016757 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016758 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016759 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016760 )
16761 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016762 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 +010016763 _res = d;
16764 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016765 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016766 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016767 return NULL;
16768 }
16769 goto done;
16770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016771 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016772 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016775 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016776 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016777 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016778 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016779}
16780
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016781// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016782static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016783_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016784{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016785 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016787 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016788 return NULL;
16789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016790 void * _res = NULL;
16791 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016792 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016794 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016795 return NULL;
16796 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016797 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016798 Token * _literal;
16799 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016800 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016801 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016802 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016803 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016804 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016805 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016806 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016807 )
16808 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016809 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 +010016810 _res = b;
16811 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016812 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016814 return NULL;
16815 }
16816 goto done;
16817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016818 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016819 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016821 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016822 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016824 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016825 return NULL;
16826 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016827 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 +030016828 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016829 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016830 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016831 )
16832 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016833 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 +030016834 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016835 goto done;
16836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016837 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016838 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016841 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016842 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016843 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016844 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016845}
16846
Guido van Rossumc001c092020-04-30 12:12:19 -070016847// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016848static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016849_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016850{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016851 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016853 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016854 return NULL;
16855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016856 void * _res = NULL;
16857 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016858 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016859 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016860 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016861 return NULL;
16862 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016863 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016864 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016865 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016866 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016867 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016868 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016869 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016870 )
16871 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016872 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 +010016873 _res = d;
16874 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016875 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016877 return NULL;
16878 }
16879 goto done;
16880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016881 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016882 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016885 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016886 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016887 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016888 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016889}
16890
Guido van Rossumc001c092020-04-30 12:12:19 -070016891// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016892static asdl_seq *
16893_loop1_22_rule(Parser *p)
16894{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016895 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016896 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016898 return NULL;
16899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016900 void *_res = NULL;
16901 int _mark = p->mark;
16902 int _start_mark = p->mark;
16903 void **_children = PyMem_Malloc(sizeof(void *));
16904 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016905 p->error_indicator = 1;
16906 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016907 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016908 return NULL;
16909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016910 ssize_t _children_capacity = 1;
16911 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016912 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016913 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016914 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016915 return NULL;
16916 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016917 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016918 void *_tmp_139_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016919 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016920 (_tmp_139_var = _tmp_139_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016921 )
16922 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016923 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016924 if (_n == _children_capacity) {
16925 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016926 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16927 if (!_new_children) {
16928 p->error_indicator = 1;
16929 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016930 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016931 return NULL;
16932 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016933 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016935 _children[_n++] = _res;
16936 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016938 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016939 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016942 if (_n == 0 || p->error_indicator) {
16943 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016945 return NULL;
16946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016947 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16948 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016949 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016950 p->error_indicator = 1;
16951 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016952 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016953 return NULL;
16954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016955 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16956 PyMem_Free(_children);
16957 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016958 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016959 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016960}
16961
Guido van Rossumc001c092020-04-30 12:12:19 -070016962// _tmp_23: yield_expr | star_expressions
16963static void *
16964_tmp_23_rule(Parser *p)
16965{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016966 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016967 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016968 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016969 return NULL;
16970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016971 void * _res = NULL;
16972 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016973 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016975 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016976 return NULL;
16977 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016978 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 -070016979 expr_ty yield_expr_var;
16980 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016981 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016982 )
16983 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016984 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 +010016985 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016986 goto done;
16987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016988 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016989 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016991 }
16992 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016993 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016994 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016995 return NULL;
16996 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016997 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 -070016998 expr_ty star_expressions_var;
16999 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017000 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070017001 )
17002 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017003 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 +010017004 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017005 goto done;
17006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017007 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017008 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017011 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017012 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017013 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017014 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017015}
17016
17017// _tmp_24: yield_expr | star_expressions
17018static void *
17019_tmp_24_rule(Parser *p)
17020{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017021 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017022 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017023 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017024 return NULL;
17025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017026 void * _res = NULL;
17027 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017028 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017030 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017031 return NULL;
17032 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017033 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 -070017034 expr_ty yield_expr_var;
17035 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017036 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070017037 )
17038 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017039 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 +010017040 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017041 goto done;
17042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017043 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017044 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017046 }
17047 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017049 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017050 return NULL;
17051 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017052 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 -070017053 expr_ty star_expressions_var;
17054 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017055 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070017056 )
17057 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017058 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 +010017059 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017060 goto done;
17061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017062 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017063 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017066 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017067 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017068 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017069 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017070}
17071
17072// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017073static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017074_loop0_26_rule(Parser *p)
17075{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017076 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017077 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017078 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017079 return NULL;
17080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017081 void *_res = NULL;
17082 int _mark = p->mark;
17083 int _start_mark = p->mark;
17084 void **_children = PyMem_Malloc(sizeof(void *));
17085 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017086 p->error_indicator = 1;
17087 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017088 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017089 return NULL;
17090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017091 ssize_t _children_capacity = 1;
17092 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017093 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017095 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017096 return NULL;
17097 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017098 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017099 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017100 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017101 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017102 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017104 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017105 )
17106 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017107 _res = elem;
17108 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017109 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017110 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017111 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017112 return NULL;
17113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017114 if (_n == _children_capacity) {
17115 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017116 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17117 if (!_new_children) {
17118 p->error_indicator = 1;
17119 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017120 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017121 return NULL;
17122 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017123 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017125 _children[_n++] = _res;
17126 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017128 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017129 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017132 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17133 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017134 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017135 p->error_indicator = 1;
17136 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017137 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017138 return NULL;
17139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017140 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17141 PyMem_Free(_children);
17142 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017143 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017144 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017145}
17146
17147// _gather_25: NAME _loop0_26
17148static asdl_seq *
17149_gather_25_rule(Parser *p)
17150{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017151 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017153 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017154 return NULL;
17155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017156 asdl_seq * _res = NULL;
17157 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017158 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017159 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017160 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017161 return NULL;
17162 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017163 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 -070017164 expr_ty elem;
17165 asdl_seq * seq;
17166 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017167 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017168 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017169 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017170 )
17171 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017172 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 +010017173 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017174 goto done;
17175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017176 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017177 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017180 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017181 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017182 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017183 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017184}
17185
17186// _loop0_28: ',' NAME
17187static asdl_seq *
17188_loop0_28_rule(Parser *p)
17189{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017190 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017192 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017193 return NULL;
17194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017195 void *_res = NULL;
17196 int _mark = p->mark;
17197 int _start_mark = p->mark;
17198 void **_children = PyMem_Malloc(sizeof(void *));
17199 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017200 p->error_indicator = 1;
17201 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017202 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017203 return NULL;
17204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017205 ssize_t _children_capacity = 1;
17206 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017207 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017208 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017209 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017210 return NULL;
17211 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017212 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017213 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017214 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017215 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017216 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017217 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017218 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017219 )
17220 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017221 _res = elem;
17222 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017223 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017224 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017225 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017226 return NULL;
17227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017228 if (_n == _children_capacity) {
17229 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017230 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17231 if (!_new_children) {
17232 p->error_indicator = 1;
17233 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017234 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017235 return NULL;
17236 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017237 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017239 _children[_n++] = _res;
17240 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017243 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017246 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17247 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017248 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017249 p->error_indicator = 1;
17250 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017251 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017252 return NULL;
17253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017254 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17255 PyMem_Free(_children);
17256 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017257 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017258 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017259}
17260
17261// _gather_27: NAME _loop0_28
17262static asdl_seq *
17263_gather_27_rule(Parser *p)
17264{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017265 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017267 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017268 return NULL;
17269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017270 asdl_seq * _res = NULL;
17271 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017272 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017273 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017274 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017275 return NULL;
17276 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017277 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 -070017278 expr_ty elem;
17279 asdl_seq * seq;
17280 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017281 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017282 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017283 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017284 )
17285 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017286 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 +010017287 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017288 goto done;
17289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017290 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017291 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017294 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017295 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017296 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017297 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017298}
17299
17300// _tmp_29: ',' expression
17301static void *
17302_tmp_29_rule(Parser *p)
17303{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017304 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017306 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017307 return NULL;
17308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017309 void * _res = NULL;
17310 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017311 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017314 return NULL;
17315 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017316 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017317 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017318 expr_ty z;
17319 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017320 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017321 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017322 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017323 )
17324 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017325 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017326 _res = z;
17327 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017328 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017329 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017330 return NULL;
17331 }
17332 goto done;
17333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017334 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017335 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017338 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017339 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017340 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017341 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017342}
17343
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017344// _tmp_30: ';' | NEWLINE
17345static void *
17346_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017347{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017348 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017349 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017350 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017351 return NULL;
17352 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017353 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017354 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017355 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017356 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017357 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017358 return NULL;
17359 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017360 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17361 Token * _literal;
17362 if (
17363 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017364 )
17365 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017366 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17367 _res = _literal;
17368 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017370 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017371 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017373 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017374 { // NEWLINE
17375 if (p->error_indicator) {
17376 D(p->level--);
17377 return NULL;
17378 }
17379 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17380 Token * newline_var;
17381 if (
17382 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17383 )
17384 {
17385 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17386 _res = newline_var;
17387 goto done;
17388 }
17389 p->mark = _mark;
17390 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017392 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017393 _res = NULL;
17394 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017395 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017396 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017397}
17398
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017399// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017400static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017401_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017402{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017403 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017405 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017406 return NULL;
17407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017408 void *_res = NULL;
17409 int _mark = p->mark;
17410 int _start_mark = p->mark;
17411 void **_children = PyMem_Malloc(sizeof(void *));
17412 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017413 p->error_indicator = 1;
17414 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017415 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017416 return NULL;
17417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017418 ssize_t _children_capacity = 1;
17419 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017420 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017423 return NULL;
17424 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017425 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017426 void *_tmp_140_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017427 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017428 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017429 )
17430 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017431 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017432 if (_n == _children_capacity) {
17433 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017434 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17435 if (!_new_children) {
17436 p->error_indicator = 1;
17437 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017438 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017439 return NULL;
17440 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017441 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017443 _children[_n++] = _res;
17444 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017446 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017447 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17449 }
17450 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17451 if (!_seq) {
17452 PyMem_Free(_children);
17453 p->error_indicator = 1;
17454 PyErr_NoMemory();
17455 D(p->level--);
17456 return NULL;
17457 }
17458 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17459 PyMem_Free(_children);
17460 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17461 D(p->level--);
17462 return _seq;
17463}
17464
17465// _loop1_32: ('.' | '...')
17466static asdl_seq *
17467_loop1_32_rule(Parser *p)
17468{
17469 D(p->level++);
17470 if (p->error_indicator) {
17471 D(p->level--);
17472 return NULL;
17473 }
17474 void *_res = NULL;
17475 int _mark = p->mark;
17476 int _start_mark = p->mark;
17477 void **_children = PyMem_Malloc(sizeof(void *));
17478 if (!_children) {
17479 p->error_indicator = 1;
17480 PyErr_NoMemory();
17481 D(p->level--);
17482 return NULL;
17483 }
17484 ssize_t _children_capacity = 1;
17485 ssize_t _n = 0;
17486 { // ('.' | '...')
17487 if (p->error_indicator) {
17488 D(p->level--);
17489 return NULL;
17490 }
17491 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017492 void *_tmp_141_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017493 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017494 (_tmp_141_var = _tmp_141_rule(p)) // '.' | '...'
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017495 )
17496 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017497 _res = _tmp_141_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017498 if (_n == _children_capacity) {
17499 _children_capacity *= 2;
17500 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17501 if (!_new_children) {
17502 p->error_indicator = 1;
17503 PyErr_NoMemory();
17504 D(p->level--);
17505 return NULL;
17506 }
17507 _children = _new_children;
17508 }
17509 _children[_n++] = _res;
17510 _mark = p->mark;
17511 }
17512 p->mark = _mark;
17513 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017516 if (_n == 0 || p->error_indicator) {
17517 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017518 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017519 return NULL;
17520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017521 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17522 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017523 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017524 p->error_indicator = 1;
17525 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017526 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017527 return NULL;
17528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017529 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17530 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017531 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017532 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017533 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017534}
17535
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017536// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017537static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017538_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017539{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017540 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017541 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017543 return NULL;
17544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017545 void *_res = NULL;
17546 int _mark = p->mark;
17547 int _start_mark = p->mark;
17548 void **_children = PyMem_Malloc(sizeof(void *));
17549 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017550 p->error_indicator = 1;
17551 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017553 return NULL;
17554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017555 ssize_t _children_capacity = 1;
17556 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017557 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017559 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017560 return NULL;
17561 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017562 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 +010017563 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017564 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017565 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017566 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017567 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017568 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017569 )
17570 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017571 _res = elem;
17572 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017573 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017574 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017576 return NULL;
17577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017578 if (_n == _children_capacity) {
17579 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017580 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17581 if (!_new_children) {
17582 p->error_indicator = 1;
17583 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017584 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017585 return NULL;
17586 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017587 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017589 _children[_n++] = _res;
17590 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017592 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017593 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017596 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17597 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017598 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017599 p->error_indicator = 1;
17600 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017601 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017602 return NULL;
17603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017604 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17605 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017606 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017607 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017608 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017609}
17610
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017611// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017612static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017613_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017614{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017615 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017616 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017617 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017618 return NULL;
17619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017620 asdl_seq * _res = NULL;
17621 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017622 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017624 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017625 return NULL;
17626 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017627 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 +010017628 alias_ty elem;
17629 asdl_seq * seq;
17630 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017631 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017632 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017633 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017634 )
17635 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017636 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 +010017637 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017638 goto done;
17639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017640 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017641 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017644 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017645 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017646 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017647 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017648}
17649
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017650// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017651static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017652_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017653{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017654 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017655 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017657 return NULL;
17658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017659 void * _res = NULL;
17660 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017661 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017663 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017664 return NULL;
17665 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017666 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017667 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017668 expr_ty z;
17669 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017670 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017671 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017672 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017673 )
17674 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017675 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 +010017676 _res = z;
17677 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017678 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017679 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017680 return NULL;
17681 }
17682 goto done;
17683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017684 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017685 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017688 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017689 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017690 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017691 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017692}
17693
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017694// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017695static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017696_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017697{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017698 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017699 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017701 return NULL;
17702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017703 void *_res = NULL;
17704 int _mark = p->mark;
17705 int _start_mark = p->mark;
17706 void **_children = PyMem_Malloc(sizeof(void *));
17707 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017708 p->error_indicator = 1;
17709 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017711 return NULL;
17712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017713 ssize_t _children_capacity = 1;
17714 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017715 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017717 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017718 return NULL;
17719 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017720 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 +010017721 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017722 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017723 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017724 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017725 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017726 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017727 )
17728 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017729 _res = elem;
17730 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017731 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017732 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017733 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017734 return NULL;
17735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017736 if (_n == _children_capacity) {
17737 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017738 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17739 if (!_new_children) {
17740 p->error_indicator = 1;
17741 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017743 return NULL;
17744 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017745 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017747 _children[_n++] = _res;
17748 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017750 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017751 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017754 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17755 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017756 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017757 p->error_indicator = 1;
17758 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017760 return NULL;
17761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017762 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17763 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017764 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017765 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017766 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017767}
17768
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017769// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017770static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017771_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017772{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017773 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017776 return NULL;
17777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017778 asdl_seq * _res = NULL;
17779 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017780 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017781 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017782 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017783 return NULL;
17784 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017785 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 +010017786 alias_ty elem;
17787 asdl_seq * seq;
17788 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017789 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017790 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017791 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017792 )
17793 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017794 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 +010017795 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017796 goto done;
17797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017798 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017799 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017802 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017803 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017804 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017805 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017806}
17807
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017808// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017809static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017810_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017811{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017812 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017813 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017815 return NULL;
17816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017817 void * _res = NULL;
17818 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017819 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017821 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017822 return NULL;
17823 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017824 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017825 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017826 expr_ty z;
17827 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017828 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017829 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017830 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017831 )
17832 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017833 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 +010017834 _res = z;
17835 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017836 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017838 return NULL;
17839 }
17840 goto done;
17841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017842 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017843 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017846 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017847 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017848 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017849 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017850}
17851
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017852// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017853static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017854_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017855{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017856 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017858 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017859 return NULL;
17860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017861 void *_res = NULL;
17862 int _mark = p->mark;
17863 int _start_mark = p->mark;
17864 void **_children = PyMem_Malloc(sizeof(void *));
17865 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017866 p->error_indicator = 1;
17867 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017869 return NULL;
17870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017871 ssize_t _children_capacity = 1;
17872 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017873 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017876 return NULL;
17877 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017878 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017879 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017880 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017881 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017882 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017884 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017885 )
17886 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017887 _res = elem;
17888 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017889 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017890 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017892 return NULL;
17893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017894 if (_n == _children_capacity) {
17895 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017896 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17897 if (!_new_children) {
17898 p->error_indicator = 1;
17899 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017901 return NULL;
17902 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017903 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017905 _children[_n++] = _res;
17906 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017908 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017909 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017912 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17913 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017914 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017915 p->error_indicator = 1;
17916 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017918 return NULL;
17919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017920 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17921 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017922 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017923 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017924 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017925}
17926
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017927// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017928static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017929_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017930{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017931 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017932 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017933 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017934 return NULL;
17935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017936 asdl_seq * _res = NULL;
17937 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017938 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017940 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017941 return NULL;
17942 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017943 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 +010017944 withitem_ty elem;
17945 asdl_seq * seq;
17946 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017947 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017948 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017949 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017950 )
17951 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017952 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 +010017953 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017954 goto done;
17955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017956 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017957 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017960 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017961 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017962 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017963 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017964}
17965
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017966// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017967static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017968_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017969{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017970 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017971 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017972 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017973 return NULL;
17974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017975 void *_res = NULL;
17976 int _mark = p->mark;
17977 int _start_mark = p->mark;
17978 void **_children = PyMem_Malloc(sizeof(void *));
17979 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017980 p->error_indicator = 1;
17981 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017983 return NULL;
17984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017985 ssize_t _children_capacity = 1;
17986 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017987 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017989 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017990 return NULL;
17991 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017992 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017993 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017994 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017995 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017996 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017998 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017999 )
18000 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018001 _res = elem;
18002 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018003 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018004 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018005 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018006 return NULL;
18007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018008 if (_n == _children_capacity) {
18009 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018010 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18011 if (!_new_children) {
18012 p->error_indicator = 1;
18013 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018015 return NULL;
18016 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018017 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018019 _children[_n++] = _res;
18020 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018022 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018023 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018026 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18027 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018028 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018029 p->error_indicator = 1;
18030 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018032 return NULL;
18033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018034 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18035 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018036 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018037 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018038 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018039}
18040
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018041// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018042static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018043_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018044{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018045 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018047 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018048 return NULL;
18049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018050 asdl_seq * _res = NULL;
18051 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018052 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018054 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018055 return NULL;
18056 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018057 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 +010018058 withitem_ty elem;
18059 asdl_seq * seq;
18060 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018061 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018062 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018063 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018064 )
18065 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018066 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 +010018067 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018068 goto done;
18069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018070 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018071 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018074 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018075 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018076 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018077 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018078}
18079
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018080// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018081static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018082_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018083{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018084 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018085 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018086 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018087 return NULL;
18088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018089 void *_res = NULL;
18090 int _mark = p->mark;
18091 int _start_mark = p->mark;
18092 void **_children = PyMem_Malloc(sizeof(void *));
18093 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018094 p->error_indicator = 1;
18095 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018096 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018097 return NULL;
18098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018099 ssize_t _children_capacity = 1;
18100 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018101 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018102 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018103 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018104 return NULL;
18105 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018106 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018107 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018108 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018109 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018110 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018111 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018112 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018113 )
18114 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018115 _res = elem;
18116 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018117 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018118 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018119 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018120 return NULL;
18121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018122 if (_n == _children_capacity) {
18123 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018124 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18125 if (!_new_children) {
18126 p->error_indicator = 1;
18127 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018128 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018129 return NULL;
18130 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018131 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018133 _children[_n++] = _res;
18134 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018136 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018137 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018140 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18141 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018142 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018143 p->error_indicator = 1;
18144 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018145 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018146 return NULL;
18147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018148 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18149 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018150 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018151 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018152 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018153}
18154
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018155// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018156static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018157_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018158{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018159 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018160 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018161 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018162 return NULL;
18163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018164 asdl_seq * _res = NULL;
18165 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018166 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018169 return NULL;
18170 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018171 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 +030018172 withitem_ty elem;
18173 asdl_seq * seq;
18174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018175 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018176 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018177 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018178 )
18179 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018180 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 +010018181 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018182 goto done;
18183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018184 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018185 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018188 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018189 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018190 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018191 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018192}
18193
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018194// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018195static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018196_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018197{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018198 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018199 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018200 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018201 return NULL;
18202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018203 void *_res = NULL;
18204 int _mark = p->mark;
18205 int _start_mark = p->mark;
18206 void **_children = PyMem_Malloc(sizeof(void *));
18207 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018208 p->error_indicator = 1;
18209 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018210 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018211 return NULL;
18212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018213 ssize_t _children_capacity = 1;
18214 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018215 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018217 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018218 return NULL;
18219 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018220 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018221 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018222 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018223 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018224 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018225 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018226 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018227 )
18228 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018229 _res = elem;
18230 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018231 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018232 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018233 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018234 return NULL;
18235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018236 if (_n == _children_capacity) {
18237 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018238 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18239 if (!_new_children) {
18240 p->error_indicator = 1;
18241 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018242 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018243 return NULL;
18244 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018245 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018247 _children[_n++] = _res;
18248 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018250 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018251 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018254 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18255 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018256 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018257 p->error_indicator = 1;
18258 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018259 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018260 return NULL;
18261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018262 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18263 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018264 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018265 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018266 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018267}
18268
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018269// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018270static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018271_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018272{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018273 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018275 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018276 return NULL;
18277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018278 asdl_seq * _res = NULL;
18279 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018280 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018283 return NULL;
18284 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018285 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 +030018286 withitem_ty elem;
18287 asdl_seq * seq;
18288 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018289 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018290 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018291 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018292 )
18293 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018294 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 +010018295 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018296 goto done;
18297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018298 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018299 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018302 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018303 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018304 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018305 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018306}
18307
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018308// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018309static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018310_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018311{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018312 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018313 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018315 return NULL;
18316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018317 void * _res = NULL;
18318 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018319 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018321 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018322 return NULL;
18323 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018324 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18325 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018326 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018327 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018328 )
18329 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018330 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18331 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018332 goto done;
18333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018334 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018335 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18337 }
18338 { // ')'
18339 if (p->error_indicator) {
18340 D(p->level--);
18341 return NULL;
18342 }
18343 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18344 Token * _literal;
18345 if (
18346 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18347 )
18348 {
18349 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18350 _res = _literal;
18351 goto done;
18352 }
18353 p->mark = _mark;
18354 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18356 }
18357 { // ':'
18358 if (p->error_indicator) {
18359 D(p->level--);
18360 return NULL;
18361 }
18362 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18363 Token * _literal;
18364 if (
18365 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18366 )
18367 {
18368 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18369 _res = _literal;
18370 goto done;
18371 }
18372 p->mark = _mark;
18373 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018376 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018377 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018378 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018379 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018380}
18381
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018382// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018383static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018384_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018385{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018386 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018389 return NULL;
18390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018391 void *_res = NULL;
18392 int _mark = p->mark;
18393 int _start_mark = p->mark;
18394 void **_children = PyMem_Malloc(sizeof(void *));
18395 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018396 p->error_indicator = 1;
18397 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018398 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018399 return NULL;
18400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018401 ssize_t _children_capacity = 1;
18402 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018403 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018405 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018406 return NULL;
18407 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018408 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018409 excepthandler_ty except_block_var;
18410 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018411 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018412 )
18413 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018414 _res = except_block_var;
18415 if (_n == _children_capacity) {
18416 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18418 if (!_new_children) {
18419 p->error_indicator = 1;
18420 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018421 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018422 return NULL;
18423 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018424 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018426 _children[_n++] = _res;
18427 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018429 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018430 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018433 if (_n == 0 || p->error_indicator) {
18434 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018436 return NULL;
18437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018438 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18439 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018440 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018441 p->error_indicator = 1;
18442 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018444 return NULL;
18445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018446 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18447 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018448 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018449 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018450 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018451}
18452
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018453// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018454static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018455_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018456{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018457 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018460 return NULL;
18461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018462 void * _res = NULL;
18463 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018464 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018466 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018467 return NULL;
18468 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018469 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018470 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018471 expr_ty z;
18472 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018473 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018474 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018475 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018476 )
18477 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018478 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 +010018479 _res = z;
18480 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018481 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018483 return NULL;
18484 }
18485 goto done;
18486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018487 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018488 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018491 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018492 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018493 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018494 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018495}
18496
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018497// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018498static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018499_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018500{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018501 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018503 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018504 return NULL;
18505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018506 void * _res = NULL;
18507 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018508 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018510 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018511 return NULL;
18512 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018513 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018514 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018515 expr_ty z;
18516 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018517 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018518 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018519 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018520 )
18521 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018522 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 +010018523 _res = z;
18524 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018525 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018526 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018527 return NULL;
18528 }
18529 goto done;
18530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018531 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018532 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018535 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018536 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018537 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018538 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018539}
18540
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018541// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018542static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018543_tmp_51_rule(Parser *p)
18544{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018545 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018547 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018548 return NULL;
18549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018550 void * _res = NULL;
18551 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018552 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018553 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018554 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018555 return NULL;
18556 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018557 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018558 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018559 expr_ty z;
18560 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018561 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018562 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018563 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018564 )
18565 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018566 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018567 _res = z;
18568 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018569 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018570 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018571 return NULL;
18572 }
18573 goto done;
18574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018575 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018576 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018579 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018580 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018581 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018582 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018583}
18584
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018585// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018586static void *
18587_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018588{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018589 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018591 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018592 return NULL;
18593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018594 void * _res = NULL;
18595 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018596 { // '->' expression
18597 if (p->error_indicator) {
18598 D(p->level--);
18599 return NULL;
18600 }
18601 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18602 Token * _literal;
18603 expr_ty z;
18604 if (
18605 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18606 &&
18607 (z = expression_rule(p)) // expression
18608 )
18609 {
18610 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18611 _res = z;
18612 if (_res == NULL && PyErr_Occurred()) {
18613 p->error_indicator = 1;
18614 D(p->level--);
18615 return NULL;
18616 }
18617 goto done;
18618 }
18619 p->mark = _mark;
18620 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18622 }
18623 _res = NULL;
18624 done:
18625 D(p->level--);
18626 return _res;
18627}
18628
18629// _tmp_53: NEWLINE INDENT
18630static void *
18631_tmp_53_rule(Parser *p)
18632{
18633 D(p->level++);
18634 if (p->error_indicator) {
18635 D(p->level--);
18636 return NULL;
18637 }
18638 void * _res = NULL;
18639 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018640 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018641 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018642 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018643 return NULL;
18644 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018645 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018646 Token * indent_var;
18647 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018648 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018649 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018650 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018651 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018652 )
18653 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018654 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 +010018655 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018656 goto done;
18657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018658 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018659 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018662 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018663 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018664 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018665 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018666}
18667
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018668// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018669static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018670_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018671{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018672 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018673 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018675 return NULL;
18676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018677 void *_res = NULL;
18678 int _mark = p->mark;
18679 int _start_mark = p->mark;
18680 void **_children = PyMem_Malloc(sizeof(void *));
18681 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018682 p->error_indicator = 1;
18683 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018684 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018685 return NULL;
18686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018687 ssize_t _children_capacity = 1;
18688 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018689 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018690 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018691 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018692 return NULL;
18693 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018694 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 -070018695 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018696 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018697 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018698 )
18699 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018700 _res = param_no_default_var;
18701 if (_n == _children_capacity) {
18702 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018703 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18704 if (!_new_children) {
18705 p->error_indicator = 1;
18706 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018708 return NULL;
18709 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018710 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018712 _children[_n++] = _res;
18713 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018716 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018719 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18720 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018721 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018722 p->error_indicator = 1;
18723 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018724 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018725 return NULL;
18726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018727 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18728 PyMem_Free(_children);
18729 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018730 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018731 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018732}
18733
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018734// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018735static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018736_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018737{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018738 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018740 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018741 return NULL;
18742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018743 void *_res = NULL;
18744 int _mark = p->mark;
18745 int _start_mark = p->mark;
18746 void **_children = PyMem_Malloc(sizeof(void *));
18747 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018748 p->error_indicator = 1;
18749 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018750 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018751 return NULL;
18752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018753 ssize_t _children_capacity = 1;
18754 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018755 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018758 return NULL;
18759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018760 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 -070018761 NameDefaultPair* param_with_default_var;
18762 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018763 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018764 )
18765 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018766 _res = param_with_default_var;
18767 if (_n == _children_capacity) {
18768 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018769 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18770 if (!_new_children) {
18771 p->error_indicator = 1;
18772 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018773 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018774 return NULL;
18775 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018776 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018778 _children[_n++] = _res;
18779 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018781 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018782 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018785 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18786 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018787 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018788 p->error_indicator = 1;
18789 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018790 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018791 return NULL;
18792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018793 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18794 PyMem_Free(_children);
18795 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018796 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018797 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018798}
18799
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018800// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018801static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018802_loop0_56_rule(Parser *p)
18803{
18804 D(p->level++);
18805 if (p->error_indicator) {
18806 D(p->level--);
18807 return NULL;
18808 }
18809 void *_res = NULL;
18810 int _mark = p->mark;
18811 int _start_mark = p->mark;
18812 void **_children = PyMem_Malloc(sizeof(void *));
18813 if (!_children) {
18814 p->error_indicator = 1;
18815 PyErr_NoMemory();
18816 D(p->level--);
18817 return NULL;
18818 }
18819 ssize_t _children_capacity = 1;
18820 ssize_t _n = 0;
18821 { // param_with_default
18822 if (p->error_indicator) {
18823 D(p->level--);
18824 return NULL;
18825 }
18826 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18827 NameDefaultPair* param_with_default_var;
18828 while (
18829 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18830 )
18831 {
18832 _res = param_with_default_var;
18833 if (_n == _children_capacity) {
18834 _children_capacity *= 2;
18835 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18836 if (!_new_children) {
18837 p->error_indicator = 1;
18838 PyErr_NoMemory();
18839 D(p->level--);
18840 return NULL;
18841 }
18842 _children = _new_children;
18843 }
18844 _children[_n++] = _res;
18845 _mark = p->mark;
18846 }
18847 p->mark = _mark;
18848 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18850 }
18851 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18852 if (!_seq) {
18853 PyMem_Free(_children);
18854 p->error_indicator = 1;
18855 PyErr_NoMemory();
18856 D(p->level--);
18857 return NULL;
18858 }
18859 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18860 PyMem_Free(_children);
18861 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18862 D(p->level--);
18863 return _seq;
18864}
18865
18866// _loop1_57: param_no_default
18867static asdl_seq *
18868_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018869{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018870 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018871 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018872 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018873 return NULL;
18874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018875 void *_res = NULL;
18876 int _mark = p->mark;
18877 int _start_mark = p->mark;
18878 void **_children = PyMem_Malloc(sizeof(void *));
18879 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018880 p->error_indicator = 1;
18881 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018882 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018883 return NULL;
18884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018885 ssize_t _children_capacity = 1;
18886 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018887 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018889 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018890 return NULL;
18891 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018892 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 -070018893 arg_ty param_no_default_var;
18894 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018895 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018896 )
18897 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018898 _res = param_no_default_var;
18899 if (_n == _children_capacity) {
18900 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018901 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18902 if (!_new_children) {
18903 p->error_indicator = 1;
18904 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018906 return NULL;
18907 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018908 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018910 _children[_n++] = _res;
18911 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018913 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018914 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018917 if (_n == 0 || p->error_indicator) {
18918 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018919 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018920 return NULL;
18921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018922 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18923 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018924 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018925 p->error_indicator = 1;
18926 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018927 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018928 return NULL;
18929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018930 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18931 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018932 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018933 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018934 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018935}
18936
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018937// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018938static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018939_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018940{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018941 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018942 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018943 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018944 return NULL;
18945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018946 void *_res = NULL;
18947 int _mark = p->mark;
18948 int _start_mark = p->mark;
18949 void **_children = PyMem_Malloc(sizeof(void *));
18950 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018951 p->error_indicator = 1;
18952 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018954 return NULL;
18955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018956 ssize_t _children_capacity = 1;
18957 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018958 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018959 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018960 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018961 return NULL;
18962 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018963 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 -070018964 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018965 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018966 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018967 )
18968 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018969 _res = param_with_default_var;
18970 if (_n == _children_capacity) {
18971 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018972 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18973 if (!_new_children) {
18974 p->error_indicator = 1;
18975 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018976 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018977 return NULL;
18978 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018979 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018981 _children[_n++] = _res;
18982 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018984 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018985 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018988 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18989 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018990 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018991 p->error_indicator = 1;
18992 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018994 return NULL;
18995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018996 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18997 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018998 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018999 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019000 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019001}
19002
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019003// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019004static asdl_seq *
19005_loop1_59_rule(Parser *p)
19006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019007 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019009 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019010 return NULL;
19011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019012 void *_res = NULL;
19013 int _mark = p->mark;
19014 int _start_mark = p->mark;
19015 void **_children = PyMem_Malloc(sizeof(void *));
19016 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019017 p->error_indicator = 1;
19018 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019019 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019020 return NULL;
19021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019022 ssize_t _children_capacity = 1;
19023 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019024 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019025 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019026 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019027 return NULL;
19028 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019029 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19030 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019031 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019032 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019033 )
19034 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019035 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019036 if (_n == _children_capacity) {
19037 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019038 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19039 if (!_new_children) {
19040 p->error_indicator = 1;
19041 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019042 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019043 return NULL;
19044 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019045 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019047 _children[_n++] = _res;
19048 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019050 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019051 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019054 if (_n == 0 || p->error_indicator) {
19055 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019056 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019057 return NULL;
19058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019059 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19060 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019061 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019062 p->error_indicator = 1;
19063 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019064 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019065 return NULL;
19066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019067 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19068 PyMem_Free(_children);
19069 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019070 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019071 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019072}
19073
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019074// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019075static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019076_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070019077{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019078 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019080 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019081 return NULL;
19082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019083 void *_res = NULL;
19084 int _mark = p->mark;
19085 int _start_mark = p->mark;
19086 void **_children = PyMem_Malloc(sizeof(void *));
19087 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019088 p->error_indicator = 1;
19089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019090 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019091 return NULL;
19092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019093 ssize_t _children_capacity = 1;
19094 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019095 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019098 return NULL;
19099 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019100 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 +030019101 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019102 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019103 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019104 )
19105 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019106 _res = param_no_default_var;
19107 if (_n == _children_capacity) {
19108 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019109 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19110 if (!_new_children) {
19111 p->error_indicator = 1;
19112 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019113 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019114 return NULL;
19115 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019116 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019118 _children[_n++] = _res;
19119 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019121 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019122 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019125 if (_n == 0 || p->error_indicator) {
19126 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019127 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019128 return NULL;
19129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019130 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19131 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019132 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019133 p->error_indicator = 1;
19134 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019135 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019136 return NULL;
19137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019138 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19139 PyMem_Free(_children);
19140 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019141 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019142 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019143}
19144
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019145// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019146static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019147_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019148{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019149 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019150 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019151 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019152 return NULL;
19153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019154 void *_res = NULL;
19155 int _mark = p->mark;
19156 int _start_mark = p->mark;
19157 void **_children = PyMem_Malloc(sizeof(void *));
19158 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019159 p->error_indicator = 1;
19160 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019161 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019162 return NULL;
19163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019164 ssize_t _children_capacity = 1;
19165 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019166 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019169 return NULL;
19170 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019171 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 +030019172 arg_ty param_no_default_var;
19173 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019174 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019175 )
19176 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019177 _res = param_no_default_var;
19178 if (_n == _children_capacity) {
19179 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019180 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19181 if (!_new_children) {
19182 p->error_indicator = 1;
19183 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019184 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019185 return NULL;
19186 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019187 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019189 _children[_n++] = _res;
19190 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019192 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019193 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019196 if (_n == 0 || p->error_indicator) {
19197 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019198 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019199 return NULL;
19200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019201 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19202 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019203 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019204 p->error_indicator = 1;
19205 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019206 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019207 return NULL;
19208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019209 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19210 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019211 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019212 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019213 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019214}
19215
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019216// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019217static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019218_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019219{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019220 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019222 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019223 return NULL;
19224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019225 void *_res = NULL;
19226 int _mark = p->mark;
19227 int _start_mark = p->mark;
19228 void **_children = PyMem_Malloc(sizeof(void *));
19229 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019230 p->error_indicator = 1;
19231 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019232 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019233 return NULL;
19234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019235 ssize_t _children_capacity = 1;
19236 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019237 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019239 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019240 return NULL;
19241 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019242 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 +030019243 arg_ty param_no_default_var;
19244 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019245 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019246 )
19247 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019248 _res = param_no_default_var;
19249 if (_n == _children_capacity) {
19250 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19252 if (!_new_children) {
19253 p->error_indicator = 1;
19254 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019255 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019256 return NULL;
19257 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019258 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019260 _children[_n++] = _res;
19261 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019263 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019264 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019267 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19268 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019269 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019270 p->error_indicator = 1;
19271 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019272 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019273 return NULL;
19274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019275 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19276 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019277 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019278 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019279 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019280}
19281
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019282// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019283static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019284_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019285{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019286 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019288 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019289 return NULL;
19290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019291 void *_res = NULL;
19292 int _mark = p->mark;
19293 int _start_mark = p->mark;
19294 void **_children = PyMem_Malloc(sizeof(void *));
19295 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019296 p->error_indicator = 1;
19297 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019298 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019299 return NULL;
19300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019301 ssize_t _children_capacity = 1;
19302 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019303 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019304 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019305 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019306 return NULL;
19307 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019308 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 +030019309 NameDefaultPair* param_with_default_var;
19310 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019311 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019312 )
19313 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019314 _res = param_with_default_var;
19315 if (_n == _children_capacity) {
19316 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019317 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19318 if (!_new_children) {
19319 p->error_indicator = 1;
19320 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019321 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019322 return NULL;
19323 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019324 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019326 _children[_n++] = _res;
19327 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019329 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019330 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019333 if (_n == 0 || p->error_indicator) {
19334 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019335 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019336 return NULL;
19337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019338 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19339 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019340 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019341 p->error_indicator = 1;
19342 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019343 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019344 return NULL;
19345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019346 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19347 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019348 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019349 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019350 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019351}
19352
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019353// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019354static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019355_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019356{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019357 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019359 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019360 return NULL;
19361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019362 void *_res = NULL;
19363 int _mark = p->mark;
19364 int _start_mark = p->mark;
19365 void **_children = PyMem_Malloc(sizeof(void *));
19366 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019367 p->error_indicator = 1;
19368 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019369 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019370 return NULL;
19371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019372 ssize_t _children_capacity = 1;
19373 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019374 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019375 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019376 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019377 return NULL;
19378 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019379 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19380 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019381 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019382 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019383 )
19384 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019385 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019386 if (_n == _children_capacity) {
19387 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019388 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19389 if (!_new_children) {
19390 p->error_indicator = 1;
19391 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019392 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019393 return NULL;
19394 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019395 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019397 _children[_n++] = _res;
19398 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019400 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019401 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019404 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19405 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019406 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019407 p->error_indicator = 1;
19408 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019409 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019410 return NULL;
19411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019412 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19413 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019414 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019415 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019416 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019417}
19418
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019419// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019420static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019421_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019422{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019423 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019424 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019425 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019426 return NULL;
19427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019428 void *_res = NULL;
19429 int _mark = p->mark;
19430 int _start_mark = p->mark;
19431 void **_children = PyMem_Malloc(sizeof(void *));
19432 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019433 p->error_indicator = 1;
19434 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019435 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019436 return NULL;
19437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019438 ssize_t _children_capacity = 1;
19439 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019440 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019443 return NULL;
19444 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019445 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19446 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019447 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019448 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019449 )
19450 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019451 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019452 if (_n == _children_capacity) {
19453 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019454 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19455 if (!_new_children) {
19456 p->error_indicator = 1;
19457 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019458 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019459 return NULL;
19460 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019461 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019463 _children[_n++] = _res;
19464 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019466 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019467 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019470 if (_n == 0 || p->error_indicator) {
19471 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019472 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019473 return NULL;
19474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019475 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19476 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019477 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019478 p->error_indicator = 1;
19479 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019480 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019481 return NULL;
19482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019483 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19484 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019485 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019486 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019487 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019488}
19489
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019490// _loop0_66: param_maybe_default
19491static asdl_seq *
19492_loop0_66_rule(Parser *p)
19493{
19494 D(p->level++);
19495 if (p->error_indicator) {
19496 D(p->level--);
19497 return NULL;
19498 }
19499 void *_res = NULL;
19500 int _mark = p->mark;
19501 int _start_mark = p->mark;
19502 void **_children = PyMem_Malloc(sizeof(void *));
19503 if (!_children) {
19504 p->error_indicator = 1;
19505 PyErr_NoMemory();
19506 D(p->level--);
19507 return NULL;
19508 }
19509 ssize_t _children_capacity = 1;
19510 ssize_t _n = 0;
19511 { // param_maybe_default
19512 if (p->error_indicator) {
19513 D(p->level--);
19514 return NULL;
19515 }
19516 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19517 NameDefaultPair* param_maybe_default_var;
19518 while (
19519 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19520 )
19521 {
19522 _res = param_maybe_default_var;
19523 if (_n == _children_capacity) {
19524 _children_capacity *= 2;
19525 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19526 if (!_new_children) {
19527 p->error_indicator = 1;
19528 PyErr_NoMemory();
19529 D(p->level--);
19530 return NULL;
19531 }
19532 _children = _new_children;
19533 }
19534 _children[_n++] = _res;
19535 _mark = p->mark;
19536 }
19537 p->mark = _mark;
19538 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19540 }
19541 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19542 if (!_seq) {
19543 PyMem_Free(_children);
19544 p->error_indicator = 1;
19545 PyErr_NoMemory();
19546 D(p->level--);
19547 return NULL;
19548 }
19549 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19550 PyMem_Free(_children);
19551 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19552 D(p->level--);
19553 return _seq;
19554}
19555
19556// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019557static asdl_seq *
19558_loop1_67_rule(Parser *p)
19559{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019560 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019561 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019562 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019563 return NULL;
19564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019565 void *_res = NULL;
19566 int _mark = p->mark;
19567 int _start_mark = p->mark;
19568 void **_children = PyMem_Malloc(sizeof(void *));
19569 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019570 p->error_indicator = 1;
19571 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019572 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019573 return NULL;
19574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019575 ssize_t _children_capacity = 1;
19576 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019577 { // param_maybe_default
19578 if (p->error_indicator) {
19579 D(p->level--);
19580 return NULL;
19581 }
19582 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19583 NameDefaultPair* param_maybe_default_var;
19584 while (
19585 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19586 )
19587 {
19588 _res = param_maybe_default_var;
19589 if (_n == _children_capacity) {
19590 _children_capacity *= 2;
19591 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19592 if (!_new_children) {
19593 p->error_indicator = 1;
19594 PyErr_NoMemory();
19595 D(p->level--);
19596 return NULL;
19597 }
19598 _children = _new_children;
19599 }
19600 _children[_n++] = _res;
19601 _mark = p->mark;
19602 }
19603 p->mark = _mark;
19604 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19606 }
19607 if (_n == 0 || p->error_indicator) {
19608 PyMem_Free(_children);
19609 D(p->level--);
19610 return NULL;
19611 }
19612 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19613 if (!_seq) {
19614 PyMem_Free(_children);
19615 p->error_indicator = 1;
19616 PyErr_NoMemory();
19617 D(p->level--);
19618 return NULL;
19619 }
19620 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19621 PyMem_Free(_children);
19622 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19623 D(p->level--);
19624 return _seq;
19625}
19626
19627// _loop1_68: ('@' named_expression NEWLINE)
19628static asdl_seq *
19629_loop1_68_rule(Parser *p)
19630{
19631 D(p->level++);
19632 if (p->error_indicator) {
19633 D(p->level--);
19634 return NULL;
19635 }
19636 void *_res = NULL;
19637 int _mark = p->mark;
19638 int _start_mark = p->mark;
19639 void **_children = PyMem_Malloc(sizeof(void *));
19640 if (!_children) {
19641 p->error_indicator = 1;
19642 PyErr_NoMemory();
19643 D(p->level--);
19644 return NULL;
19645 }
19646 ssize_t _children_capacity = 1;
19647 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019648 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019650 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019651 return NULL;
19652 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019653 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 +010019654 void *_tmp_142_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019655 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019656 (_tmp_142_var = _tmp_142_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019657 )
19658 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019659 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019660 if (_n == _children_capacity) {
19661 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019662 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19663 if (!_new_children) {
19664 p->error_indicator = 1;
19665 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019666 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019667 return NULL;
19668 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019669 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019671 _children[_n++] = _res;
19672 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019674 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019675 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019678 if (_n == 0 || p->error_indicator) {
19679 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019680 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019681 return NULL;
19682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019683 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19684 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019685 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019686 p->error_indicator = 1;
19687 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019688 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019689 return NULL;
19690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019691 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19692 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019693 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019694 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019695 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019696}
19697
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019698// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019699static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019700_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019701{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019702 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019705 return NULL;
19706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019707 void * _res = NULL;
19708 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019709 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019711 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019712 return NULL;
19713 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019714 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019715 Token * _literal;
19716 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019717 void *z;
19718 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019719 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019720 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019721 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019722 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019723 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019724 )
19725 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019726 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019727 _res = z;
19728 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019731 return NULL;
19732 }
19733 goto done;
19734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019735 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019736 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019739 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019740 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019741 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019742 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019743}
19744
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019745// _loop0_71: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019746static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019747_loop0_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019748{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019749 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019752 return NULL;
19753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019754 void *_res = NULL;
19755 int _mark = p->mark;
19756 int _start_mark = p->mark;
19757 void **_children = PyMem_Malloc(sizeof(void *));
19758 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019759 p->error_indicator = 1;
19760 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019762 return NULL;
19763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019764 ssize_t _children_capacity = 1;
19765 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019766 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019769 return NULL;
19770 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019771 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019772 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019773 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019774 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019775 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019776 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019777 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019778 )
19779 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019780 _res = elem;
19781 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019782 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019783 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019784 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019785 return NULL;
19786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019787 if (_n == _children_capacity) {
19788 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019789 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19790 if (!_new_children) {
19791 p->error_indicator = 1;
19792 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019794 return NULL;
19795 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019796 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019798 _children[_n++] = _res;
19799 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019801 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019802 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019805 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19806 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019807 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019808 p->error_indicator = 1;
19809 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019810 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019811 return NULL;
19812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019813 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19814 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019815 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019816 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019817 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019818}
19819
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019820// _gather_70: star_expression _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019821static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019822_gather_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019823{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019824 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019825 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019827 return NULL;
19828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019829 asdl_seq * _res = NULL;
19830 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019831 { // star_expression _loop0_71
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019833 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019834 return NULL;
19835 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019836 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 +010019837 expr_ty elem;
19838 asdl_seq * seq;
19839 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019840 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019841 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019842 (seq = _loop0_71_rule(p)) // _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019843 )
19844 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019845 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 +010019846 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019847 goto done;
19848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019849 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019850 D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
19851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019853 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019854 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019855 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019856 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019857}
19858
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019859// _loop1_72: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019860static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019861_loop1_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019862{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019863 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019864 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019865 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019866 return NULL;
19867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019868 void *_res = NULL;
19869 int _mark = p->mark;
19870 int _start_mark = p->mark;
19871 void **_children = PyMem_Malloc(sizeof(void *));
19872 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019873 p->error_indicator = 1;
19874 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019876 return NULL;
19877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019878 ssize_t _children_capacity = 1;
19879 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019880 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019881 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019882 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019883 return NULL;
19884 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019885 D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019886 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019887 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019888 (_tmp_143_var = _tmp_143_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019889 )
19890 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019891 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019892 if (_n == _children_capacity) {
19893 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019894 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19895 if (!_new_children) {
19896 p->error_indicator = 1;
19897 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019899 return NULL;
19900 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019901 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019903 _children[_n++] = _res;
19904 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019906 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019907 D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019910 if (_n == 0 || p->error_indicator) {
19911 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019912 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019913 return NULL;
19914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019915 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19916 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019917 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019918 p->error_indicator = 1;
19919 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019921 return NULL;
19922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019923 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19924 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019925 _PyPegen_insert_memo(p, _start_mark, _loop1_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019926 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019927 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019928}
19929
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019930// _loop0_74: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019931static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019932_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019933{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019934 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019935 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019936 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019937 return NULL;
19938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019939 void *_res = NULL;
19940 int _mark = p->mark;
19941 int _start_mark = p->mark;
19942 void **_children = PyMem_Malloc(sizeof(void *));
19943 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019944 p->error_indicator = 1;
19945 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019947 return NULL;
19948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019949 ssize_t _children_capacity = 1;
19950 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019951 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019953 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019954 return NULL;
19955 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019956 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 +010019957 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019958 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019959 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019960 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019961 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019962 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019963 )
19964 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019965 _res = elem;
19966 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019967 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019968 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019969 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019970 return NULL;
19971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019972 if (_n == _children_capacity) {
19973 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019974 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19975 if (!_new_children) {
19976 p->error_indicator = 1;
19977 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019979 return NULL;
19980 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019981 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019983 _children[_n++] = _res;
19984 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019986 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019987 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019990 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19991 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019992 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019993 p->error_indicator = 1;
19994 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019995 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019996 return NULL;
19997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019998 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19999 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020000 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020001 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020002 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020003}
20004
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020005// _gather_73: star_named_expression _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020006static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020007_gather_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020008{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020009 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020012 return NULL;
20013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020014 asdl_seq * _res = NULL;
20015 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020016 { // star_named_expression _loop0_74
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020017 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020018 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020019 return NULL;
20020 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020021 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 +010020022 expr_ty elem;
20023 asdl_seq * seq;
20024 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020025 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020026 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020027 (seq = _loop0_74_rule(p)) // _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020028 )
20029 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020030 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 +010020031 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020032 goto done;
20033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020034 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020035 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
20036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020038 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020039 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020040 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020041 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020042}
20043
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020044// _loop1_75: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020045static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020046_loop1_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020047{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020048 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020050 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020051 return NULL;
20052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020053 void *_res = NULL;
20054 int _mark = p->mark;
20055 int _start_mark = p->mark;
20056 void **_children = PyMem_Malloc(sizeof(void *));
20057 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020058 p->error_indicator = 1;
20059 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020060 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020061 return NULL;
20062 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020063 ssize_t _children_capacity = 1;
20064 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020065 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020066 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020067 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020068 return NULL;
20069 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020070 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020071 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020072 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020073 (_tmp_144_var = _tmp_144_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020074 )
20075 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020076 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020077 if (_n == _children_capacity) {
20078 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020079 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20080 if (!_new_children) {
20081 p->error_indicator = 1;
20082 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020084 return NULL;
20085 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020086 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020088 _children[_n++] = _res;
20089 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020091 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020092 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020095 if (_n == 0 || p->error_indicator) {
20096 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020098 return NULL;
20099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020100 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20101 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020102 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020103 p->error_indicator = 1;
20104 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020105 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020106 return NULL;
20107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020108 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20109 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020110 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020111 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020112 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020113}
20114
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020115// _loop0_76: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020116static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020117_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020118{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020119 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020120 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020122 return NULL;
20123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020124 void *_res = NULL;
20125 int _mark = p->mark;
20126 int _start_mark = p->mark;
20127 void **_children = PyMem_Malloc(sizeof(void *));
20128 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020129 p->error_indicator = 1;
20130 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020132 return NULL;
20133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020134 ssize_t _children_capacity = 1;
20135 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020136 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020138 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020139 return NULL;
20140 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020141 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 -070020142 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020143 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020144 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020145 )
20146 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020147 _res = lambda_param_no_default_var;
20148 if (_n == _children_capacity) {
20149 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020150 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20151 if (!_new_children) {
20152 p->error_indicator = 1;
20153 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020155 return NULL;
20156 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020157 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020159 _children[_n++] = _res;
20160 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020163 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020166 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20167 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020168 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020169 p->error_indicator = 1;
20170 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020171 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020172 return NULL;
20173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020174 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20175 PyMem_Free(_children);
20176 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020177 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020178 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020179}
20180
Guido van Rossum3941d972020-05-01 09:42:03 -070020181// _loop0_77: lambda_param_with_default
20182static asdl_seq *
20183_loop0_77_rule(Parser *p)
20184{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020185 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020187 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020188 return NULL;
20189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020190 void *_res = NULL;
20191 int _mark = p->mark;
20192 int _start_mark = p->mark;
20193 void **_children = PyMem_Malloc(sizeof(void *));
20194 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020195 p->error_indicator = 1;
20196 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020197 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020198 return NULL;
20199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020200 ssize_t _children_capacity = 1;
20201 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020202 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020204 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020205 return NULL;
20206 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020207 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 -070020208 NameDefaultPair* lambda_param_with_default_var;
20209 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020210 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020211 )
20212 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020213 _res = lambda_param_with_default_var;
20214 if (_n == _children_capacity) {
20215 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020216 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20217 if (!_new_children) {
20218 p->error_indicator = 1;
20219 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020220 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020221 return NULL;
20222 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020223 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020225 _children[_n++] = _res;
20226 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020228 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020229 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
20230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020232 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20233 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020234 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020235 p->error_indicator = 1;
20236 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020237 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020238 return NULL;
20239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020240 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20241 PyMem_Free(_children);
20242 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020243 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020244 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020245}
20246
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020247// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020248static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020249_loop0_78_rule(Parser *p)
20250{
20251 D(p->level++);
20252 if (p->error_indicator) {
20253 D(p->level--);
20254 return NULL;
20255 }
20256 void *_res = NULL;
20257 int _mark = p->mark;
20258 int _start_mark = p->mark;
20259 void **_children = PyMem_Malloc(sizeof(void *));
20260 if (!_children) {
20261 p->error_indicator = 1;
20262 PyErr_NoMemory();
20263 D(p->level--);
20264 return NULL;
20265 }
20266 ssize_t _children_capacity = 1;
20267 ssize_t _n = 0;
20268 { // lambda_param_with_default
20269 if (p->error_indicator) {
20270 D(p->level--);
20271 return NULL;
20272 }
20273 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20274 NameDefaultPair* lambda_param_with_default_var;
20275 while (
20276 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20277 )
20278 {
20279 _res = lambda_param_with_default_var;
20280 if (_n == _children_capacity) {
20281 _children_capacity *= 2;
20282 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20283 if (!_new_children) {
20284 p->error_indicator = 1;
20285 PyErr_NoMemory();
20286 D(p->level--);
20287 return NULL;
20288 }
20289 _children = _new_children;
20290 }
20291 _children[_n++] = _res;
20292 _mark = p->mark;
20293 }
20294 p->mark = _mark;
20295 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20297 }
20298 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20299 if (!_seq) {
20300 PyMem_Free(_children);
20301 p->error_indicator = 1;
20302 PyErr_NoMemory();
20303 D(p->level--);
20304 return NULL;
20305 }
20306 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20307 PyMem_Free(_children);
20308 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20309 D(p->level--);
20310 return _seq;
20311}
20312
20313// _loop1_79: lambda_param_no_default
20314static asdl_seq *
20315_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020316{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020317 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020319 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020320 return NULL;
20321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020322 void *_res = NULL;
20323 int _mark = p->mark;
20324 int _start_mark = p->mark;
20325 void **_children = PyMem_Malloc(sizeof(void *));
20326 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020327 p->error_indicator = 1;
20328 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020329 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020330 return NULL;
20331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020332 ssize_t _children_capacity = 1;
20333 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020334 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020336 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020337 return NULL;
20338 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020339 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 -070020340 arg_ty lambda_param_no_default_var;
20341 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020342 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020343 )
20344 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020345 _res = lambda_param_no_default_var;
20346 if (_n == _children_capacity) {
20347 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020348 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20349 if (!_new_children) {
20350 p->error_indicator = 1;
20351 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020352 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020353 return NULL;
20354 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020355 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020357 _children[_n++] = _res;
20358 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020360 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020361 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020364 if (_n == 0 || p->error_indicator) {
20365 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020366 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020367 return NULL;
20368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020369 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20370 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020371 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020372 p->error_indicator = 1;
20373 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020374 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020375 return NULL;
20376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020377 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20378 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020379 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020380 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020381 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020382}
20383
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020384// _loop0_80: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020385static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020386_loop0_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020387{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020388 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020389 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020390 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020391 return NULL;
20392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020393 void *_res = NULL;
20394 int _mark = p->mark;
20395 int _start_mark = p->mark;
20396 void **_children = PyMem_Malloc(sizeof(void *));
20397 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020398 p->error_indicator = 1;
20399 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020400 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020401 return NULL;
20402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020403 ssize_t _children_capacity = 1;
20404 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020405 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020406 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020407 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020408 return NULL;
20409 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020410 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 -070020411 NameDefaultPair* lambda_param_with_default_var;
20412 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020413 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020414 )
20415 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020416 _res = lambda_param_with_default_var;
20417 if (_n == _children_capacity) {
20418 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020419 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20420 if (!_new_children) {
20421 p->error_indicator = 1;
20422 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020423 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020424 return NULL;
20425 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020426 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020428 _children[_n++] = _res;
20429 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020431 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020432 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020435 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20436 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020437 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020438 p->error_indicator = 1;
20439 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020440 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020441 return NULL;
20442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020443 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20444 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020445 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020446 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020447 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020448}
20449
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020450// _loop1_81: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020451static asdl_seq *
20452_loop1_81_rule(Parser *p)
20453{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020454 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020456 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020457 return NULL;
20458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020459 void *_res = NULL;
20460 int _mark = p->mark;
20461 int _start_mark = p->mark;
20462 void **_children = PyMem_Malloc(sizeof(void *));
20463 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020464 p->error_indicator = 1;
20465 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020466 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020467 return NULL;
20468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020469 ssize_t _children_capacity = 1;
20470 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020471 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020473 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020474 return NULL;
20475 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020476 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20477 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020478 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020479 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020480 )
20481 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020482 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020483 if (_n == _children_capacity) {
20484 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020485 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20486 if (!_new_children) {
20487 p->error_indicator = 1;
20488 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020489 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020490 return NULL;
20491 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020492 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020494 _children[_n++] = _res;
20495 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020497 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020498 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020501 if (_n == 0 || p->error_indicator) {
20502 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020503 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020504 return NULL;
20505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020506 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20507 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020508 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020509 p->error_indicator = 1;
20510 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020511 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020512 return NULL;
20513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020514 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20515 PyMem_Free(_children);
20516 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020517 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020518 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020519}
20520
20521// _loop1_82: lambda_param_no_default
20522static asdl_seq *
20523_loop1_82_rule(Parser *p)
20524{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020525 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020527 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020528 return NULL;
20529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020530 void *_res = NULL;
20531 int _mark = p->mark;
20532 int _start_mark = p->mark;
20533 void **_children = PyMem_Malloc(sizeof(void *));
20534 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020535 p->error_indicator = 1;
20536 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020537 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020538 return NULL;
20539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020540 ssize_t _children_capacity = 1;
20541 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020542 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020544 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020545 return NULL;
20546 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020547 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 -070020548 arg_ty lambda_param_no_default_var;
20549 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020550 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020551 )
20552 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020553 _res = lambda_param_no_default_var;
20554 if (_n == _children_capacity) {
20555 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020556 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20557 if (!_new_children) {
20558 p->error_indicator = 1;
20559 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020560 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020561 return NULL;
20562 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020563 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020565 _children[_n++] = _res;
20566 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020568 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020569 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020572 if (_n == 0 || p->error_indicator) {
20573 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020574 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020575 return NULL;
20576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020577 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20578 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020579 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020580 p->error_indicator = 1;
20581 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020582 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020583 return NULL;
20584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020585 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20586 PyMem_Free(_children);
20587 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020588 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020589 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020590}
20591
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020592// _loop1_83: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020593static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020594_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020595{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020596 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020598 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020599 return NULL;
20600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020601 void *_res = NULL;
20602 int _mark = p->mark;
20603 int _start_mark = p->mark;
20604 void **_children = PyMem_Malloc(sizeof(void *));
20605 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020606 p->error_indicator = 1;
20607 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020608 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020609 return NULL;
20610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020611 ssize_t _children_capacity = 1;
20612 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020613 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020615 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020616 return NULL;
20617 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020618 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 -070020619 arg_ty lambda_param_no_default_var;
20620 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020621 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020622 )
20623 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020624 _res = lambda_param_no_default_var;
20625 if (_n == _children_capacity) {
20626 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020627 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20628 if (!_new_children) {
20629 p->error_indicator = 1;
20630 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020631 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020632 return NULL;
20633 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020634 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020636 _children[_n++] = _res;
20637 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020639 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020640 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020643 if (_n == 0 || p->error_indicator) {
20644 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020645 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020646 return NULL;
20647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020648 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20649 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020650 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020651 p->error_indicator = 1;
20652 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020653 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020654 return NULL;
20655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020656 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20657 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020658 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020659 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020660 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020661}
20662
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020663// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020664static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020665_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020666{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020667 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020668 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020669 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020670 return NULL;
20671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020672 void *_res = NULL;
20673 int _mark = p->mark;
20674 int _start_mark = p->mark;
20675 void **_children = PyMem_Malloc(sizeof(void *));
20676 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020677 p->error_indicator = 1;
20678 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020679 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020680 return NULL;
20681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020682 ssize_t _children_capacity = 1;
20683 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020684 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020685 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020686 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020687 return NULL;
20688 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020689 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 -070020690 arg_ty lambda_param_no_default_var;
20691 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020692 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020693 )
20694 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020695 _res = lambda_param_no_default_var;
20696 if (_n == _children_capacity) {
20697 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020698 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20699 if (!_new_children) {
20700 p->error_indicator = 1;
20701 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020702 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020703 return NULL;
20704 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020705 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020707 _children[_n++] = _res;
20708 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020710 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020711 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020714 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20715 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020716 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020717 p->error_indicator = 1;
20718 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020719 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020720 return NULL;
20721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020722 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20723 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020724 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020725 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020726 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020727}
20728
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020729// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020730static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020731_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020732{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020733 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020736 return NULL;
20737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020738 void *_res = NULL;
20739 int _mark = p->mark;
20740 int _start_mark = p->mark;
20741 void **_children = PyMem_Malloc(sizeof(void *));
20742 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020743 p->error_indicator = 1;
20744 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020746 return NULL;
20747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020748 ssize_t _children_capacity = 1;
20749 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020750 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020752 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020753 return NULL;
20754 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020755 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 -070020756 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020757 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020758 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020759 )
20760 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020761 _res = lambda_param_with_default_var;
20762 if (_n == _children_capacity) {
20763 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020764 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20765 if (!_new_children) {
20766 p->error_indicator = 1;
20767 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020769 return NULL;
20770 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020771 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020773 _children[_n++] = _res;
20774 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020776 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020777 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020780 if (_n == 0 || p->error_indicator) {
20781 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020782 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020783 return NULL;
20784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020785 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20786 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020787 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020788 p->error_indicator = 1;
20789 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020791 return NULL;
20792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020793 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20794 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020795 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020796 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020797 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020798}
20799
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020800// _loop0_86: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020801static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020802_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020803{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020804 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020807 return NULL;
20808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020809 void *_res = NULL;
20810 int _mark = p->mark;
20811 int _start_mark = p->mark;
20812 void **_children = PyMem_Malloc(sizeof(void *));
20813 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020814 p->error_indicator = 1;
20815 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020817 return NULL;
20818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020819 ssize_t _children_capacity = 1;
20820 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020821 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020824 return NULL;
20825 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020826 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20827 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020828 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020829 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020830 )
20831 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020832 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020833 if (_n == _children_capacity) {
20834 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020835 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20836 if (!_new_children) {
20837 p->error_indicator = 1;
20838 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020839 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020840 return NULL;
20841 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020842 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020844 _children[_n++] = _res;
20845 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020847 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020848 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
20849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020851 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20852 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020853 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020854 p->error_indicator = 1;
20855 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020857 return NULL;
20858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020859 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20860 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020861 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020862 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020863 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020864}
20865
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020866// _loop1_87: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020867static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020868_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020869{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020870 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020871 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020872 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020873 return NULL;
20874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020875 void *_res = NULL;
20876 int _mark = p->mark;
20877 int _start_mark = p->mark;
20878 void **_children = PyMem_Malloc(sizeof(void *));
20879 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020880 p->error_indicator = 1;
20881 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020883 return NULL;
20884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020885 ssize_t _children_capacity = 1;
20886 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020887 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020889 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020890 return NULL;
20891 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020892 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20893 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020894 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020895 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020896 )
20897 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020898 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020899 if (_n == _children_capacity) {
20900 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020901 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20902 if (!_new_children) {
20903 p->error_indicator = 1;
20904 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020906 return NULL;
20907 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020908 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020910 _children[_n++] = _res;
20911 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020913 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020914 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
20915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020917 if (_n == 0 || p->error_indicator) {
20918 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020919 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020920 return NULL;
20921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020922 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20923 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020924 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020925 p->error_indicator = 1;
20926 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020927 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020928 return NULL;
20929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020930 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20931 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020932 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020933 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020934 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020935}
20936
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020937// _loop0_88: lambda_param_maybe_default
20938static asdl_seq *
20939_loop0_88_rule(Parser *p)
20940{
20941 D(p->level++);
20942 if (p->error_indicator) {
20943 D(p->level--);
20944 return NULL;
20945 }
20946 void *_res = NULL;
20947 int _mark = p->mark;
20948 int _start_mark = p->mark;
20949 void **_children = PyMem_Malloc(sizeof(void *));
20950 if (!_children) {
20951 p->error_indicator = 1;
20952 PyErr_NoMemory();
20953 D(p->level--);
20954 return NULL;
20955 }
20956 ssize_t _children_capacity = 1;
20957 ssize_t _n = 0;
20958 { // lambda_param_maybe_default
20959 if (p->error_indicator) {
20960 D(p->level--);
20961 return NULL;
20962 }
20963 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20964 NameDefaultPair* lambda_param_maybe_default_var;
20965 while (
20966 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20967 )
20968 {
20969 _res = lambda_param_maybe_default_var;
20970 if (_n == _children_capacity) {
20971 _children_capacity *= 2;
20972 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20973 if (!_new_children) {
20974 p->error_indicator = 1;
20975 PyErr_NoMemory();
20976 D(p->level--);
20977 return NULL;
20978 }
20979 _children = _new_children;
20980 }
20981 _children[_n++] = _res;
20982 _mark = p->mark;
20983 }
20984 p->mark = _mark;
20985 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
20986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20987 }
20988 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20989 if (!_seq) {
20990 PyMem_Free(_children);
20991 p->error_indicator = 1;
20992 PyErr_NoMemory();
20993 D(p->level--);
20994 return NULL;
20995 }
20996 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20997 PyMem_Free(_children);
20998 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
20999 D(p->level--);
21000 return _seq;
21001}
21002
21003// _loop1_89: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021004static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021005_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021007 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021010 return NULL;
21011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021012 void *_res = NULL;
21013 int _mark = p->mark;
21014 int _start_mark = p->mark;
21015 void **_children = PyMem_Malloc(sizeof(void *));
21016 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021017 p->error_indicator = 1;
21018 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021020 return NULL;
21021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021022 ssize_t _children_capacity = 1;
21023 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021024 { // lambda_param_maybe_default
21025 if (p->error_indicator) {
21026 D(p->level--);
21027 return NULL;
21028 }
21029 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21030 NameDefaultPair* lambda_param_maybe_default_var;
21031 while (
21032 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
21033 )
21034 {
21035 _res = lambda_param_maybe_default_var;
21036 if (_n == _children_capacity) {
21037 _children_capacity *= 2;
21038 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21039 if (!_new_children) {
21040 p->error_indicator = 1;
21041 PyErr_NoMemory();
21042 D(p->level--);
21043 return NULL;
21044 }
21045 _children = _new_children;
21046 }
21047 _children[_n++] = _res;
21048 _mark = p->mark;
21049 }
21050 p->mark = _mark;
21051 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
21052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
21053 }
21054 if (_n == 0 || p->error_indicator) {
21055 PyMem_Free(_children);
21056 D(p->level--);
21057 return NULL;
21058 }
21059 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21060 if (!_seq) {
21061 PyMem_Free(_children);
21062 p->error_indicator = 1;
21063 PyErr_NoMemory();
21064 D(p->level--);
21065 return NULL;
21066 }
21067 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21068 PyMem_Free(_children);
21069 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
21070 D(p->level--);
21071 return _seq;
21072}
21073
21074// _loop1_90: ('or' conjunction)
21075static asdl_seq *
21076_loop1_90_rule(Parser *p)
21077{
21078 D(p->level++);
21079 if (p->error_indicator) {
21080 D(p->level--);
21081 return NULL;
21082 }
21083 void *_res = NULL;
21084 int _mark = p->mark;
21085 int _start_mark = p->mark;
21086 void **_children = PyMem_Malloc(sizeof(void *));
21087 if (!_children) {
21088 p->error_indicator = 1;
21089 PyErr_NoMemory();
21090 D(p->level--);
21091 return NULL;
21092 }
21093 ssize_t _children_capacity = 1;
21094 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021095 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021098 return NULL;
21099 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021100 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021101 void *_tmp_145_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021102 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021103 (_tmp_145_var = _tmp_145_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021104 )
21105 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021106 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021107 if (_n == _children_capacity) {
21108 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021109 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21110 if (!_new_children) {
21111 p->error_indicator = 1;
21112 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021114 return NULL;
21115 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021116 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021118 _children[_n++] = _res;
21119 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021121 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021122 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021125 if (_n == 0 || p->error_indicator) {
21126 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021128 return NULL;
21129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021130 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21131 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021132 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021133 p->error_indicator = 1;
21134 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021135 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021136 return NULL;
21137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021138 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21139 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021140 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021141 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021142 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021143}
21144
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021145// _loop1_91: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021146static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021147_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021148{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021149 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021150 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021152 return NULL;
21153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021154 void *_res = NULL;
21155 int _mark = p->mark;
21156 int _start_mark = p->mark;
21157 void **_children = PyMem_Malloc(sizeof(void *));
21158 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021159 p->error_indicator = 1;
21160 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021162 return NULL;
21163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021164 ssize_t _children_capacity = 1;
21165 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021166 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021169 return NULL;
21170 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021171 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021172 void *_tmp_146_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021173 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021174 (_tmp_146_var = _tmp_146_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021175 )
21176 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021177 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021178 if (_n == _children_capacity) {
21179 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021180 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21181 if (!_new_children) {
21182 p->error_indicator = 1;
21183 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021185 return NULL;
21186 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021187 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021189 _children[_n++] = _res;
21190 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021192 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021193 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021196 if (_n == 0 || p->error_indicator) {
21197 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021198 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021199 return NULL;
21200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021201 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21202 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021203 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021204 p->error_indicator = 1;
21205 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021206 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021207 return NULL;
21208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021209 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21210 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021211 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021212 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021213 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021214}
21215
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021216// _loop1_92: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021217static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021218_loop1_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021219{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021220 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021222 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021223 return NULL;
21224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021225 void *_res = NULL;
21226 int _mark = p->mark;
21227 int _start_mark = p->mark;
21228 void **_children = PyMem_Malloc(sizeof(void *));
21229 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021230 p->error_indicator = 1;
21231 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021232 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021233 return NULL;
21234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021235 ssize_t _children_capacity = 1;
21236 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021237 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021239 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021240 return NULL;
21241 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021242 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 +010021243 CmpopExprPair* compare_op_bitwise_or_pair_var;
21244 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021245 (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 +010021246 )
21247 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021248 _res = compare_op_bitwise_or_pair_var;
21249 if (_n == _children_capacity) {
21250 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21252 if (!_new_children) {
21253 p->error_indicator = 1;
21254 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021255 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021256 return NULL;
21257 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021258 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021260 _children[_n++] = _res;
21261 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021263 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021264 D(fprintf(stderr, "%*c%s _loop1_92[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021267 if (_n == 0 || p->error_indicator) {
21268 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021270 return NULL;
21271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021272 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21273 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021274 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021275 p->error_indicator = 1;
21276 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021278 return NULL;
21279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021280 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21281 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021282 _PyPegen_insert_memo(p, _start_mark, _loop1_92_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021283 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021284 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021285}
21286
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021287// _tmp_93: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021288static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021289_tmp_93_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021290{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021291 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021293 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021294 return NULL;
21295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021296 void * _res = NULL;
21297 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021298 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021300 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021301 return NULL;
21302 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021303 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021304 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021305 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021306 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021307 )
21308 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021309 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021310 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
21311 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021312 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021313 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021314 return NULL;
21315 }
21316 goto done;
21317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021318 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021319 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021322 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021323 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021324 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021325 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021326}
21327
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021328// _loop0_95: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021329static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021330_loop0_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021331{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021332 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021333 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021334 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021335 return NULL;
21336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021337 void *_res = NULL;
21338 int _mark = p->mark;
21339 int _start_mark = p->mark;
21340 void **_children = PyMem_Malloc(sizeof(void *));
21341 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021342 p->error_indicator = 1;
21343 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021344 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021345 return NULL;
21346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021347 ssize_t _children_capacity = 1;
21348 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021349 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021350 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021351 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021352 return NULL;
21353 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021354 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021355 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021356 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021357 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021358 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021359 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021360 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021361 )
21362 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021363 _res = elem;
21364 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021365 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021366 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021368 return NULL;
21369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021370 if (_n == _children_capacity) {
21371 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021372 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21373 if (!_new_children) {
21374 p->error_indicator = 1;
21375 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021377 return NULL;
21378 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021379 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021381 _children[_n++] = _res;
21382 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021383 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021384 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021385 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021388 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21389 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021390 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021391 p->error_indicator = 1;
21392 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021394 return NULL;
21395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021396 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21397 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021398 _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021399 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021400 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021401}
21402
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021403// _gather_94: slice _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021404static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021405_gather_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021406{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021407 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021409 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021410 return NULL;
21411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021412 asdl_seq * _res = NULL;
21413 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021414 { // slice _loop0_95
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021415 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021416 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021417 return NULL;
21418 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021419 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 +010021420 expr_ty elem;
21421 asdl_seq * seq;
21422 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021423 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021424 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021425 (seq = _loop0_95_rule(p)) // _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021426 )
21427 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021428 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 +010021429 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021430 goto done;
21431 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021432 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021433 D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ',
21434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021436 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021437 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021438 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021439 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021440}
21441
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021442// _tmp_96: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021443static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021444_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021445{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021446 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021447 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021449 return NULL;
21450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021451 void * _res = NULL;
21452 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021453 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021456 return NULL;
21457 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021458 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021459 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021460 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021461 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021462 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021463 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021464 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021465 )
21466 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021467 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021468 _res = d;
21469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021472 return NULL;
21473 }
21474 goto done;
21475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021476 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021477 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021480 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021481 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021482 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021483 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021484}
21485
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021486// _tmp_97: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021487static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021488_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021489{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021490 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021491 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021492 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021493 return NULL;
21494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021495 void * _res = NULL;
21496 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021497 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021499 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021500 return NULL;
21501 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021502 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021503 expr_ty tuple_var;
21504 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021505 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021506 )
21507 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021508 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021509 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021510 goto done;
21511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021512 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021513 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021515 }
21516 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021518 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021519 return NULL;
21520 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021521 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021522 expr_ty group_var;
21523 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021524 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021525 )
21526 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021527 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021528 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021529 goto done;
21530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021531 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021532 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021534 }
21535 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021537 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021538 return NULL;
21539 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021540 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021541 expr_ty genexp_var;
21542 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021543 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021544 )
21545 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021546 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021547 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021548 goto done;
21549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021550 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021551 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021554 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021555 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021556 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021557 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021558}
21559
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021560// _tmp_98: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021561static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021562_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021563{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021564 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021567 return NULL;
21568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021569 void * _res = NULL;
21570 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021571 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021573 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021574 return NULL;
21575 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021576 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021577 expr_ty list_var;
21578 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021579 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021580 )
21581 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021582 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021583 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021584 goto done;
21585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021586 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021587 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021589 }
21590 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021591 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021592 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021593 return NULL;
21594 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021595 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021596 expr_ty listcomp_var;
21597 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021598 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021599 )
21600 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021601 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021602 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021603 goto done;
21604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021605 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021606 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021609 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021610 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021611 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021612 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021613}
21614
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021615// _tmp_99: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021616static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021617_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021618{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021619 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021621 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021622 return NULL;
21623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021624 void * _res = NULL;
21625 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021626 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021628 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021629 return NULL;
21630 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021631 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021632 expr_ty dict_var;
21633 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021634 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021635 )
21636 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021637 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021638 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021639 goto done;
21640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021641 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021642 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021644 }
21645 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021647 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021648 return NULL;
21649 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021650 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021651 expr_ty set_var;
21652 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021653 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021654 )
21655 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021656 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021657 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021658 goto done;
21659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021660 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021661 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021663 }
21664 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021666 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021667 return NULL;
21668 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021669 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021670 expr_ty dictcomp_var;
21671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021672 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021673 )
21674 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021675 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021676 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021677 goto done;
21678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021679 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021680 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021682 }
21683 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021685 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021686 return NULL;
21687 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021688 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021689 expr_ty setcomp_var;
21690 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021691 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021692 )
21693 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021694 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021695 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021696 goto done;
21697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021698 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021699 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021702 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021703 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021704 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021705 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021706}
21707
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021708// _loop1_100: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021709static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021710_loop1_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021711{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021712 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021714 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021715 return NULL;
21716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021717 void *_res = NULL;
21718 int _mark = p->mark;
21719 int _start_mark = p->mark;
21720 void **_children = PyMem_Malloc(sizeof(void *));
21721 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021722 p->error_indicator = 1;
21723 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021724 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021725 return NULL;
21726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021727 ssize_t _children_capacity = 1;
21728 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021729 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021730 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021731 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021732 return NULL;
21733 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021734 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021735 expr_ty string_var;
21736 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021737 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021738 )
21739 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021740 _res = string_var;
21741 if (_n == _children_capacity) {
21742 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021743 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21744 if (!_new_children) {
21745 p->error_indicator = 1;
21746 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021748 return NULL;
21749 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021750 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021752 _children[_n++] = _res;
21753 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021755 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021756 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021759 if (_n == 0 || p->error_indicator) {
21760 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021762 return NULL;
21763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021764 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21765 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021766 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021767 p->error_indicator = 1;
21768 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021770 return NULL;
21771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021772 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21773 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021774 _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021775 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021776 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021777}
21778
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021779// _tmp_101: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021780static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021781_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021782{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021783 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021786 return NULL;
21787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021788 void * _res = NULL;
21789 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021790 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021793 return NULL;
21794 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021795 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 +010021796 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021797 expr_ty y;
21798 void *z;
21799 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021800 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021801 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021802 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021804 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021805 )
21806 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021807 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 +010021808 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21809 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021810 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021812 return NULL;
21813 }
21814 goto done;
21815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021816 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021817 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021820 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021821 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021822 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021823 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021824}
21825
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021826// _tmp_102: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021827static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021828_tmp_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021829{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021830 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021831 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021833 return NULL;
21834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021835 void * _res = NULL;
21836 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021837 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021840 return NULL;
21841 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021842 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021843 expr_ty yield_expr_var;
21844 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021845 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021846 )
21847 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021848 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 +010021849 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021850 goto done;
21851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021852 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021853 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021855 }
21856 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021858 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021859 return NULL;
21860 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021861 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021862 expr_ty named_expression_var;
21863 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021864 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021865 )
21866 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021867 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 +010021868 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021869 goto done;
21870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021871 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021872 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021875 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021877 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021878 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021879}
21880
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021881// _loop0_104: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021882static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021883_loop0_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021884{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021885 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021887 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021888 return NULL;
21889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021890 void *_res = NULL;
21891 int _mark = p->mark;
21892 int _start_mark = p->mark;
21893 void **_children = PyMem_Malloc(sizeof(void *));
21894 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021895 p->error_indicator = 1;
21896 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021898 return NULL;
21899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021900 ssize_t _children_capacity = 1;
21901 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021902 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021903 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021904 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021905 return NULL;
21906 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021907 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 +010021908 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021909 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021910 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021911 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021912 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021913 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021914 )
21915 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021916 _res = elem;
21917 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021918 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021919 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021921 return NULL;
21922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021923 if (_n == _children_capacity) {
21924 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021925 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21926 if (!_new_children) {
21927 p->error_indicator = 1;
21928 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021930 return NULL;
21931 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021932 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021934 _children[_n++] = _res;
21935 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021937 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021938 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021941 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21942 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021943 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021944 p->error_indicator = 1;
21945 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021947 return NULL;
21948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021949 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21950 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021951 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021952 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021953 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021954}
21955
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021956// _gather_103: double_starred_kvpair _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021957static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021958_gather_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021959{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021960 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021961 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021962 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021963 return NULL;
21964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021965 asdl_seq * _res = NULL;
21966 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021967 { // double_starred_kvpair _loop0_104
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021969 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021970 return NULL;
21971 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021972 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 +010021973 KeyValuePair* elem;
21974 asdl_seq * seq;
21975 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021976 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021977 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021978 (seq = _loop0_104_rule(p)) // _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021979 )
21980 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021981 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 +010021982 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021983 goto done;
21984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021985 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021986 D(fprintf(stderr, "%*c%s _gather_103[%d-%d]: %s failed!\n", p->level, ' ',
21987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021989 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021990 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021991 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021992 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021993}
21994
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021995// _loop1_105: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021996static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021997_loop1_105_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021998{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021999 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022001 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022002 return NULL;
22003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022004 void *_res = NULL;
22005 int _mark = p->mark;
22006 int _start_mark = p->mark;
22007 void **_children = PyMem_Malloc(sizeof(void *));
22008 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022009 p->error_indicator = 1;
22010 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022012 return NULL;
22013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022014 ssize_t _children_capacity = 1;
22015 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022016 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022017 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022018 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022019 return NULL;
22020 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022021 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 +030022022 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022023 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010022024 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022025 )
22026 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022027 _res = for_if_clause_var;
22028 if (_n == _children_capacity) {
22029 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022030 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22031 if (!_new_children) {
22032 p->error_indicator = 1;
22033 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022034 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022035 return NULL;
22036 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022037 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022039 _children[_n++] = _res;
22040 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022042 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022043 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022046 if (_n == 0 || p->error_indicator) {
22047 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022048 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022049 return NULL;
22050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022051 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22052 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022053 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022054 p->error_indicator = 1;
22055 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022056 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022057 return NULL;
22058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022059 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22060 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022061 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022062 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022063 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010022064}
22065
Guido van Rossum3941d972020-05-01 09:42:03 -070022066// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070022067static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022068_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022069{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022070 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022072 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022073 return NULL;
22074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022075 void *_res = NULL;
22076 int _mark = p->mark;
22077 int _start_mark = p->mark;
22078 void **_children = PyMem_Malloc(sizeof(void *));
22079 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022080 p->error_indicator = 1;
22081 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022082 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022083 return NULL;
22084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022085 ssize_t _children_capacity = 1;
22086 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022087 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022088 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022089 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022090 return NULL;
22091 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022092 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022093 void *_tmp_147_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022094 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022095 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070022096 )
22097 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022098 _res = _tmp_147_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022099 if (_n == _children_capacity) {
22100 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022101 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22102 if (!_new_children) {
22103 p->error_indicator = 1;
22104 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022105 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022106 return NULL;
22107 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022108 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022110 _children[_n++] = _res;
22111 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022113 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022114 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
22115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022117 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22118 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022119 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022120 p->error_indicator = 1;
22121 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022122 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022123 return NULL;
22124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022125 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22126 PyMem_Free(_children);
22127 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022128 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022129 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022130}
22131
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022132// _loop0_107: ('if' disjunction)
22133static asdl_seq *
22134_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022136 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022138 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022139 return NULL;
22140 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022141 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022142 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022143 int _start_mark = p->mark;
22144 void **_children = PyMem_Malloc(sizeof(void *));
22145 if (!_children) {
22146 p->error_indicator = 1;
22147 PyErr_NoMemory();
22148 D(p->level--);
22149 return NULL;
22150 }
22151 ssize_t _children_capacity = 1;
22152 ssize_t _n = 0;
22153 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022154 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022155 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022156 return NULL;
22157 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022158 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022159 void *_tmp_148_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022160 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022161 (_tmp_148_var = _tmp_148_rule(p)) // 'if' disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022162 )
22163 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022164 _res = _tmp_148_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022165 if (_n == _children_capacity) {
22166 _children_capacity *= 2;
22167 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22168 if (!_new_children) {
22169 p->error_indicator = 1;
22170 PyErr_NoMemory();
22171 D(p->level--);
22172 return NULL;
22173 }
22174 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022175 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022176 _children[_n++] = _res;
22177 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022179 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022180 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
22181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022182 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022183 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22184 if (!_seq) {
22185 PyMem_Free(_children);
22186 p->error_indicator = 1;
22187 PyErr_NoMemory();
22188 D(p->level--);
22189 return NULL;
22190 }
22191 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22192 PyMem_Free(_children);
22193 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022194 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022195 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022196}
22197
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022198// _loop0_109: ',' (starred_expression | named_expression !'=')
Guido van Rossum3941d972020-05-01 09:42:03 -070022199static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022200_loop0_109_rule(Parser *p)
22201{
22202 D(p->level++);
22203 if (p->error_indicator) {
22204 D(p->level--);
22205 return NULL;
22206 }
22207 void *_res = NULL;
22208 int _mark = p->mark;
22209 int _start_mark = p->mark;
22210 void **_children = PyMem_Malloc(sizeof(void *));
22211 if (!_children) {
22212 p->error_indicator = 1;
22213 PyErr_NoMemory();
22214 D(p->level--);
22215 return NULL;
22216 }
22217 ssize_t _children_capacity = 1;
22218 ssize_t _n = 0;
22219 { // ',' (starred_expression | named_expression !'=')
22220 if (p->error_indicator) {
22221 D(p->level--);
22222 return NULL;
22223 }
22224 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22225 Token * _literal;
22226 void *elem;
22227 while (
22228 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22229 &&
22230 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
22231 )
22232 {
22233 _res = elem;
22234 if (_res == NULL && PyErr_Occurred()) {
22235 p->error_indicator = 1;
22236 PyMem_Free(_children);
22237 D(p->level--);
22238 return NULL;
22239 }
22240 if (_n == _children_capacity) {
22241 _children_capacity *= 2;
22242 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22243 if (!_new_children) {
22244 p->error_indicator = 1;
22245 PyErr_NoMemory();
22246 D(p->level--);
22247 return NULL;
22248 }
22249 _children = _new_children;
22250 }
22251 _children[_n++] = _res;
22252 _mark = p->mark;
22253 }
22254 p->mark = _mark;
22255 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
22256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22257 }
22258 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22259 if (!_seq) {
22260 PyMem_Free(_children);
22261 p->error_indicator = 1;
22262 PyErr_NoMemory();
22263 D(p->level--);
22264 return NULL;
22265 }
22266 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22267 PyMem_Free(_children);
22268 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
22269 D(p->level--);
22270 return _seq;
22271}
22272
22273// _gather_108: (starred_expression | named_expression !'=') _loop0_109
22274static asdl_seq *
22275_gather_108_rule(Parser *p)
22276{
22277 D(p->level++);
22278 if (p->error_indicator) {
22279 D(p->level--);
22280 return NULL;
22281 }
22282 asdl_seq * _res = NULL;
22283 int _mark = p->mark;
22284 { // (starred_expression | named_expression !'=') _loop0_109
22285 if (p->error_indicator) {
22286 D(p->level--);
22287 return NULL;
22288 }
22289 D(fprintf(stderr, "%*c> _gather_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22290 void *elem;
22291 asdl_seq * seq;
22292 if (
22293 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
22294 &&
22295 (seq = _loop0_109_rule(p)) // _loop0_109
22296 )
22297 {
22298 D(fprintf(stderr, "%*c+ _gather_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22299 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22300 goto done;
22301 }
22302 p->mark = _mark;
22303 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
22304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22305 }
22306 _res = NULL;
22307 done:
22308 D(p->level--);
22309 return _res;
22310}
22311
22312// _tmp_110: ',' kwargs
22313static void *
22314_tmp_110_rule(Parser *p)
22315{
22316 D(p->level++);
22317 if (p->error_indicator) {
22318 D(p->level--);
22319 return NULL;
22320 }
22321 void * _res = NULL;
22322 int _mark = p->mark;
22323 { // ',' kwargs
22324 if (p->error_indicator) {
22325 D(p->level--);
22326 return NULL;
22327 }
22328 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
22329 Token * _literal;
22330 asdl_seq* k;
22331 if (
22332 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22333 &&
22334 (k = kwargs_rule(p)) // kwargs
22335 )
22336 {
22337 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
22338 _res = k;
22339 if (_res == NULL && PyErr_Occurred()) {
22340 p->error_indicator = 1;
22341 D(p->level--);
22342 return NULL;
22343 }
22344 goto done;
22345 }
22346 p->mark = _mark;
22347 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
22348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22349 }
22350 _res = NULL;
22351 done:
22352 D(p->level--);
22353 return _res;
22354}
22355
22356// _loop0_112: ',' kwarg_or_starred
22357static asdl_seq *
22358_loop0_112_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022359{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022360 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022362 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022363 return NULL;
22364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022365 void *_res = NULL;
22366 int _mark = p->mark;
22367 int _start_mark = p->mark;
22368 void **_children = PyMem_Malloc(sizeof(void *));
22369 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022370 p->error_indicator = 1;
22371 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022372 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022373 return NULL;
22374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022375 ssize_t _children_capacity = 1;
22376 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022377 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022379 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022380 return NULL;
22381 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022382 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 +010022383 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022384 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022385 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022386 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022387 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022388 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022389 )
22390 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022391 _res = elem;
22392 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022393 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022394 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022395 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022396 return NULL;
22397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022398 if (_n == _children_capacity) {
22399 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022400 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22401 if (!_new_children) {
22402 p->error_indicator = 1;
22403 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022404 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022405 return NULL;
22406 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022407 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022409 _children[_n++] = _res;
22410 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022412 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022413 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022416 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22417 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022418 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022419 p->error_indicator = 1;
22420 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022421 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022422 return NULL;
22423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022424 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22425 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022426 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022427 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022428 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022429}
22430
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022431// _gather_111: kwarg_or_starred _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022432static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022433_gather_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022434{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022435 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022436 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022437 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022438 return NULL;
22439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022440 asdl_seq * _res = NULL;
22441 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022442 { // kwarg_or_starred _loop0_112
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022443 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022444 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022445 return NULL;
22446 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022447 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 -070022448 KeywordOrStarred* elem;
22449 asdl_seq * seq;
22450 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022451 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022452 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022453 (seq = _loop0_112_rule(p)) // _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022454 )
22455 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022456 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 +010022457 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022458 goto done;
22459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022460 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022461 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
22462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022464 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022465 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022466 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022467 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022468}
22469
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022470// _loop0_114: ',' kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022471static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022472_loop0_114_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022473{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022474 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022476 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022477 return NULL;
22478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022479 void *_res = NULL;
22480 int _mark = p->mark;
22481 int _start_mark = p->mark;
22482 void **_children = PyMem_Malloc(sizeof(void *));
22483 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022484 p->error_indicator = 1;
22485 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022486 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022487 return NULL;
22488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022489 ssize_t _children_capacity = 1;
22490 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022491 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022492 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022493 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022494 return NULL;
22495 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022496 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 +010022497 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022498 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022499 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022500 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022501 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022502 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022503 )
22504 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022505 _res = elem;
22506 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022507 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022508 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022509 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022510 return NULL;
22511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022512 if (_n == _children_capacity) {
22513 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22515 if (!_new_children) {
22516 p->error_indicator = 1;
22517 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022518 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022519 return NULL;
22520 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022521 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022523 _children[_n++] = _res;
22524 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022526 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022527 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022530 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22531 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022532 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022533 p->error_indicator = 1;
22534 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022535 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022536 return NULL;
22537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022538 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22539 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022540 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022541 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022542 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022543}
22544
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022545// _gather_113: kwarg_or_double_starred _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022546static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022547_gather_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022548{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022549 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022551 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022552 return NULL;
22553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022554 asdl_seq * _res = NULL;
22555 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022556 { // kwarg_or_double_starred _loop0_114
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022559 return NULL;
22560 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022561 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 -070022562 KeywordOrStarred* elem;
22563 asdl_seq * seq;
22564 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022565 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022566 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022567 (seq = _loop0_114_rule(p)) // _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022568 )
22569 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022570 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 +010022571 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022572 goto done;
22573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022574 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022575 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
22576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_114"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022578 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022579 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022580 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022581 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022582}
22583
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022584// _loop0_116: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022585static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022586_loop0_116_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022587{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022588 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022589 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022591 return NULL;
22592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022593 void *_res = NULL;
22594 int _mark = p->mark;
22595 int _start_mark = p->mark;
22596 void **_children = PyMem_Malloc(sizeof(void *));
22597 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022598 p->error_indicator = 1;
22599 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022601 return NULL;
22602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022603 ssize_t _children_capacity = 1;
22604 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022605 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022608 return NULL;
22609 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022610 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 +010022611 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022612 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022613 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022614 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022616 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022617 )
22618 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022619 _res = elem;
22620 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022621 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022622 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022623 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022624 return NULL;
22625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022626 if (_n == _children_capacity) {
22627 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022628 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22629 if (!_new_children) {
22630 p->error_indicator = 1;
22631 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022632 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022633 return NULL;
22634 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022635 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022637 _children[_n++] = _res;
22638 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022640 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022641 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022644 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22645 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022646 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022647 p->error_indicator = 1;
22648 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022649 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022650 return NULL;
22651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022652 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22653 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022654 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022655 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022656 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022657}
22658
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022659// _gather_115: kwarg_or_starred _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022660static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022661_gather_115_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022662{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022663 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022665 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022666 return NULL;
22667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022668 asdl_seq * _res = NULL;
22669 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022670 { // kwarg_or_starred _loop0_116
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022671 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022672 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022673 return NULL;
22674 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022675 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 -070022676 KeywordOrStarred* elem;
22677 asdl_seq * seq;
22678 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022679 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022680 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022681 (seq = _loop0_116_rule(p)) // _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022682 )
22683 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022684 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 +010022685 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022686 goto done;
22687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022688 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022689 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
22690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022692 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022693 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022694 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022695 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022696}
22697
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022698// _loop0_118: ',' kwarg_or_double_starred
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022699static asdl_seq *
22700_loop0_118_rule(Parser *p)
22701{
22702 D(p->level++);
22703 if (p->error_indicator) {
22704 D(p->level--);
22705 return NULL;
22706 }
22707 void *_res = NULL;
22708 int _mark = p->mark;
22709 int _start_mark = p->mark;
22710 void **_children = PyMem_Malloc(sizeof(void *));
22711 if (!_children) {
22712 p->error_indicator = 1;
22713 PyErr_NoMemory();
22714 D(p->level--);
22715 return NULL;
22716 }
22717 ssize_t _children_capacity = 1;
22718 ssize_t _n = 0;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022719 { // ',' kwarg_or_double_starred
22720 if (p->error_indicator) {
22721 D(p->level--);
22722 return NULL;
22723 }
22724 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22725 Token * _literal;
22726 KeywordOrStarred* elem;
22727 while (
22728 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22729 &&
22730 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22731 )
22732 {
22733 _res = elem;
22734 if (_res == NULL && PyErr_Occurred()) {
22735 p->error_indicator = 1;
22736 PyMem_Free(_children);
22737 D(p->level--);
22738 return NULL;
22739 }
22740 if (_n == _children_capacity) {
22741 _children_capacity *= 2;
22742 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22743 if (!_new_children) {
22744 p->error_indicator = 1;
22745 PyErr_NoMemory();
22746 D(p->level--);
22747 return NULL;
22748 }
22749 _children = _new_children;
22750 }
22751 _children[_n++] = _res;
22752 _mark = p->mark;
22753 }
22754 p->mark = _mark;
22755 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
22756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
22757 }
22758 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22759 if (!_seq) {
22760 PyMem_Free(_children);
22761 p->error_indicator = 1;
22762 PyErr_NoMemory();
22763 D(p->level--);
22764 return NULL;
22765 }
22766 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22767 PyMem_Free(_children);
22768 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
22769 D(p->level--);
22770 return _seq;
22771}
22772
22773// _gather_117: kwarg_or_double_starred _loop0_118
22774static asdl_seq *
22775_gather_117_rule(Parser *p)
22776{
22777 D(p->level++);
22778 if (p->error_indicator) {
22779 D(p->level--);
22780 return NULL;
22781 }
22782 asdl_seq * _res = NULL;
22783 int _mark = p->mark;
22784 { // kwarg_or_double_starred _loop0_118
22785 if (p->error_indicator) {
22786 D(p->level--);
22787 return NULL;
22788 }
22789 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22790 KeywordOrStarred* elem;
22791 asdl_seq * seq;
22792 if (
22793 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22794 &&
22795 (seq = _loop0_118_rule(p)) // _loop0_118
22796 )
22797 {
22798 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22799 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22800 goto done;
22801 }
22802 p->mark = _mark;
22803 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
22804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22805 }
22806 _res = NULL;
22807 done:
22808 D(p->level--);
22809 return _res;
22810}
22811
22812// _loop0_119: (',' star_target)
22813static asdl_seq *
22814_loop0_119_rule(Parser *p)
22815{
22816 D(p->level++);
22817 if (p->error_indicator) {
22818 D(p->level--);
22819 return NULL;
22820 }
22821 void *_res = NULL;
22822 int _mark = p->mark;
22823 int _start_mark = p->mark;
22824 void **_children = PyMem_Malloc(sizeof(void *));
22825 if (!_children) {
22826 p->error_indicator = 1;
22827 PyErr_NoMemory();
22828 D(p->level--);
22829 return NULL;
22830 }
22831 ssize_t _children_capacity = 1;
22832 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022833 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022835 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022836 return NULL;
22837 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022838 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22839 void *_tmp_150_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022840 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022841 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022842 )
22843 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022844 _res = _tmp_150_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022845 if (_n == _children_capacity) {
22846 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022847 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22848 if (!_new_children) {
22849 p->error_indicator = 1;
22850 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022851 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022852 return NULL;
22853 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022854 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022856 _children[_n++] = _res;
22857 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022859 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022860 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022863 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22864 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022865 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022866 p->error_indicator = 1;
22867 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022868 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022869 return NULL;
22870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022871 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22872 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022873 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022874 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022875 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022876}
22877
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022878// _loop0_121: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022879static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022880_loop0_121_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022881{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022882 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022884 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022885 return NULL;
22886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022887 void *_res = NULL;
22888 int _mark = p->mark;
22889 int _start_mark = p->mark;
22890 void **_children = PyMem_Malloc(sizeof(void *));
22891 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022892 p->error_indicator = 1;
22893 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022894 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022895 return NULL;
22896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022897 ssize_t _children_capacity = 1;
22898 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022899 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022902 return NULL;
22903 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022904 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022905 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022906 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022907 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022909 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022910 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022911 )
22912 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022913 _res = elem;
22914 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022915 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022916 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022918 return NULL;
22919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022920 if (_n == _children_capacity) {
22921 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22923 if (!_new_children) {
22924 p->error_indicator = 1;
22925 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022926 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022927 return NULL;
22928 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022929 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022931 _children[_n++] = _res;
22932 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022934 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022935 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022938 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22939 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022940 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022941 p->error_indicator = 1;
22942 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022943 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022944 return NULL;
22945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022946 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22947 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022948 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022949 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022950 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022951}
22952
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022953// _gather_120: star_target _loop0_121
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022954static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022955_gather_120_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022956{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022957 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022960 return NULL;
22961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022962 asdl_seq * _res = NULL;
22963 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022964 { // star_target _loop0_121
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022967 return NULL;
22968 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022969 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 +010022970 expr_ty elem;
22971 asdl_seq * seq;
22972 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022973 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022974 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022975 (seq = _loop0_121_rule(p)) // _loop0_121
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022976 )
22977 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022978 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 +010022979 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022980 goto done;
22981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022982 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022983 D(fprintf(stderr, "%*c%s _gather_120[%d-%d]: %s failed!\n", p->level, ' ',
22984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_121"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022986 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022987 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022988 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022989 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022990}
22991
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022992// _tmp_122: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022993static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022994_tmp_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022995{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022996 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022999 return NULL;
23000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023001 void * _res = NULL;
23002 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023003 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023004 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023005 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023006 return NULL;
23007 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023008 D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023009 expr_ty star_target_var;
23010 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023011 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023012 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023013 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023014 )
23015 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023016 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 +010023017 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023018 goto done;
23019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023020 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023021 D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023024 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023025 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023026 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023027 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023028}
23029
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023030// _loop0_124: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023031static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023032_loop0_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023033{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023034 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023036 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023037 return NULL;
23038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023039 void *_res = NULL;
23040 int _mark = p->mark;
23041 int _start_mark = p->mark;
23042 void **_children = PyMem_Malloc(sizeof(void *));
23043 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023044 p->error_indicator = 1;
23045 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023047 return NULL;
23048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023049 ssize_t _children_capacity = 1;
23050 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023051 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023053 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023054 return NULL;
23055 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023056 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023057 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023058 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023059 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023060 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023062 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023063 )
23064 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023065 _res = elem;
23066 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023067 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023068 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023070 return NULL;
23071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023072 if (_n == _children_capacity) {
23073 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023074 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23075 if (!_new_children) {
23076 p->error_indicator = 1;
23077 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023079 return NULL;
23080 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023081 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023083 _children[_n++] = _res;
23084 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023086 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023087 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023090 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23091 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023092 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023093 p->error_indicator = 1;
23094 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023095 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023096 return NULL;
23097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023098 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23099 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023100 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023101 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023102 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023103}
23104
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023105// _gather_123: del_target _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023106static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023107_gather_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023108{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023109 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023112 return NULL;
23113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023114 asdl_seq * _res = NULL;
23115 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023116 { // del_target _loop0_124
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023119 return NULL;
23120 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023121 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 +010023122 expr_ty elem;
23123 asdl_seq * seq;
23124 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023125 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023126 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023127 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023128 )
23129 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023130 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 +010023131 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023132 goto done;
23133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023134 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023135 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
23136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023138 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023139 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023140 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023141 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023142}
23143
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023144// _loop0_126: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023145static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023146_loop0_126_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023147{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023148 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023150 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023151 return NULL;
23152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023153 void *_res = NULL;
23154 int _mark = p->mark;
23155 int _start_mark = p->mark;
23156 void **_children = PyMem_Malloc(sizeof(void *));
23157 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023158 p->error_indicator = 1;
23159 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023161 return NULL;
23162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023163 ssize_t _children_capacity = 1;
23164 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023165 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023167 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023168 return NULL;
23169 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023170 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023171 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023172 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023173 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023174 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023175 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023176 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023177 )
23178 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023179 _res = elem;
23180 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023181 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023182 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023183 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023184 return NULL;
23185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023186 if (_n == _children_capacity) {
23187 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023188 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23189 if (!_new_children) {
23190 p->error_indicator = 1;
23191 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023192 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023193 return NULL;
23194 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023195 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023197 _children[_n++] = _res;
23198 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023200 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023201 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023204 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23205 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023206 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023207 p->error_indicator = 1;
23208 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023209 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023210 return NULL;
23211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023212 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23213 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023214 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023215 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023216 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023217}
23218
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023219// _gather_125: target _loop0_126
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023220static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023221_gather_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023222{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023223 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023226 return NULL;
23227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023228 asdl_seq * _res = NULL;
23229 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023230 { // target _loop0_126
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023232 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023233 return NULL;
23234 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023235 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 +010023236 expr_ty elem;
23237 asdl_seq * seq;
23238 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023239 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023240 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023241 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023242 )
23243 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023244 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 +010023245 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023246 goto done;
23247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023248 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023249 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
23250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_126"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023252 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023253 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023254 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023255 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023256}
23257
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023258// _tmp_127: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023259static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023260_tmp_127_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023261{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023262 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023265 return NULL;
23266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023267 void * _res = NULL;
23268 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023269 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023271 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023272 return NULL;
23273 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023274 D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023275 expr_ty args_var;
23276 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023277 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023278 )
23279 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023280 D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023281 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023282 goto done;
23283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023284 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023285 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023287 }
23288 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023290 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023291 return NULL;
23292 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023293 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 +010023294 expr_ty expression_var;
23295 asdl_seq* for_if_clauses_var;
23296 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023297 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023298 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023299 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023300 )
23301 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023302 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 +010023303 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023304 goto done;
23305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023306 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023307 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023310 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023311 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023312 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023313 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023314}
23315
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023316// _loop0_128: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023317static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023318_loop0_128_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023319{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023320 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023321 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023322 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023323 return NULL;
23324 }
23325 void *_res = NULL;
23326 int _mark = p->mark;
23327 int _start_mark = p->mark;
23328 void **_children = PyMem_Malloc(sizeof(void *));
23329 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023330 p->error_indicator = 1;
23331 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023332 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023333 return NULL;
23334 }
23335 ssize_t _children_capacity = 1;
23336 ssize_t _n = 0;
23337 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023340 return NULL;
23341 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023342 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 +030023343 asdl_seq* star_named_expressions_var;
23344 while (
23345 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23346 )
23347 {
23348 _res = star_named_expressions_var;
23349 if (_n == _children_capacity) {
23350 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023351 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23352 if (!_new_children) {
23353 p->error_indicator = 1;
23354 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023355 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023356 return NULL;
23357 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023358 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023359 }
23360 _children[_n++] = _res;
23361 _mark = p->mark;
23362 }
23363 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023364 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023366 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023367 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23368 if (!_seq) {
23369 PyMem_Free(_children);
23370 p->error_indicator = 1;
23371 PyErr_NoMemory();
23372 D(p->level--);
23373 return NULL;
23374 }
23375 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23376 PyMem_Free(_children);
23377 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023378 D(p->level--);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023379 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023380}
23381
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023382// _loop0_129: (star_targets '=')
23383static asdl_seq *
23384_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023385{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023386 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023389 return NULL;
23390 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023391 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023392 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023393 int _start_mark = p->mark;
23394 void **_children = PyMem_Malloc(sizeof(void *));
23395 if (!_children) {
23396 p->error_indicator = 1;
23397 PyErr_NoMemory();
23398 D(p->level--);
23399 return NULL;
23400 }
23401 ssize_t _children_capacity = 1;
23402 ssize_t _n = 0;
23403 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023405 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023406 return NULL;
23407 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023408 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023409 void *_tmp_151_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023410 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023411 (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023412 )
23413 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023414 _res = _tmp_151_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023415 if (_n == _children_capacity) {
23416 _children_capacity *= 2;
23417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23418 if (!_new_children) {
23419 p->error_indicator = 1;
23420 PyErr_NoMemory();
23421 D(p->level--);
23422 return NULL;
23423 }
23424 _children = _new_children;
23425 }
23426 _children[_n++] = _res;
23427 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023429 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023430 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023432 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023433 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23434 if (!_seq) {
23435 PyMem_Free(_children);
23436 p->error_indicator = 1;
23437 PyErr_NoMemory();
23438 D(p->level--);
23439 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023440 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023441 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23442 PyMem_Free(_children);
23443 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023444 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023445 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023446}
23447
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023448// _loop0_130: (star_targets '=')
23449static asdl_seq *
23450_loop0_130_rule(Parser *p)
23451{
23452 D(p->level++);
23453 if (p->error_indicator) {
23454 D(p->level--);
23455 return NULL;
23456 }
23457 void *_res = NULL;
23458 int _mark = p->mark;
23459 int _start_mark = p->mark;
23460 void **_children = PyMem_Malloc(sizeof(void *));
23461 if (!_children) {
23462 p->error_indicator = 1;
23463 PyErr_NoMemory();
23464 D(p->level--);
23465 return NULL;
23466 }
23467 ssize_t _children_capacity = 1;
23468 ssize_t _n = 0;
23469 { // (star_targets '=')
23470 if (p->error_indicator) {
23471 D(p->level--);
23472 return NULL;
23473 }
23474 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23475 void *_tmp_152_var;
23476 while (
23477 (_tmp_152_var = _tmp_152_rule(p)) // star_targets '='
23478 )
23479 {
23480 _res = _tmp_152_var;
23481 if (_n == _children_capacity) {
23482 _children_capacity *= 2;
23483 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23484 if (!_new_children) {
23485 p->error_indicator = 1;
23486 PyErr_NoMemory();
23487 D(p->level--);
23488 return NULL;
23489 }
23490 _children = _new_children;
23491 }
23492 _children[_n++] = _res;
23493 _mark = p->mark;
23494 }
23495 p->mark = _mark;
23496 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
23497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23498 }
23499 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23500 if (!_seq) {
23501 PyMem_Free(_children);
23502 p->error_indicator = 1;
23503 PyErr_NoMemory();
23504 D(p->level--);
23505 return NULL;
23506 }
23507 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23508 PyMem_Free(_children);
23509 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
23510 D(p->level--);
23511 return _seq;
23512}
23513
23514// _tmp_131: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023515static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023516_tmp_131_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023517{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023518 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023521 return NULL;
23522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023523 void * _res = NULL;
23524 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023525 { // yield_expr
23526 if (p->error_indicator) {
23527 D(p->level--);
23528 return NULL;
23529 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023530 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 -070023531 expr_ty yield_expr_var;
23532 if (
23533 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23534 )
23535 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023536 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 -070023537 _res = yield_expr_var;
23538 goto done;
23539 }
23540 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023541 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23543 }
23544 { // star_expressions
23545 if (p->error_indicator) {
23546 D(p->level--);
23547 return NULL;
23548 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023549 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 -070023550 expr_ty star_expressions_var;
23551 if (
23552 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23553 )
23554 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023555 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 -070023556 _res = star_expressions_var;
23557 goto done;
23558 }
23559 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023560 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23562 }
23563 _res = NULL;
23564 done:
23565 D(p->level--);
23566 return _res;
23567}
23568
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023569// _tmp_132: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023570static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023571_tmp_132_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023572{
23573 D(p->level++);
23574 if (p->error_indicator) {
23575 D(p->level--);
23576 return NULL;
23577 }
23578 void * _res = NULL;
23579 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023580 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023582 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023583 return NULL;
23584 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023585 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023586 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023587 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023588 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023589 )
23590 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023591 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023592 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023593 goto done;
23594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023595 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023596 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023598 }
23599 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023600 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023601 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023602 return NULL;
23603 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023604 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023605 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023606 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023607 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023608 )
23609 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023610 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023611 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023612 goto done;
23613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023614 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023615 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023617 }
23618 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023621 return NULL;
23622 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023623 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023624 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023625 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023626 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023627 )
23628 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023629 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023630 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023631 goto done;
23632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023633 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023634 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023637 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023638 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023639 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023640 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023641}
23642
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023643// _loop0_133: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023644static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023645_loop0_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023646{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023647 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023648 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023650 return NULL;
23651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023652 void *_res = NULL;
23653 int _mark = p->mark;
23654 int _start_mark = p->mark;
23655 void **_children = PyMem_Malloc(sizeof(void *));
23656 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023657 p->error_indicator = 1;
23658 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023659 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023660 return NULL;
23661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023662 ssize_t _children_capacity = 1;
23663 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023664 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023666 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023667 return NULL;
23668 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023669 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 -070023670 arg_ty param_no_default_var;
23671 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023672 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023673 )
23674 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023675 _res = param_no_default_var;
23676 if (_n == _children_capacity) {
23677 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23679 if (!_new_children) {
23680 p->error_indicator = 1;
23681 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023682 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023683 return NULL;
23684 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023685 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023687 _children[_n++] = _res;
23688 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023690 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023691 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023694 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23695 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023696 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023697 p->error_indicator = 1;
23698 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023699 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023700 return NULL;
23701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023702 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23703 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023704 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023705 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023706 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023707}
23708
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023709// _tmp_134: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023710static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023711_tmp_134_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023712{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023713 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023716 return NULL;
23717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023718 void * _res = NULL;
23719 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023720 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023723 return NULL;
23724 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023725 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 +010023726 SlashWithDefault* slash_with_default_var;
23727 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023728 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023729 )
23730 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023731 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 +010023732 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023733 goto done;
23734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023735 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023736 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023738 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023739 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023740 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023741 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023742 return NULL;
23743 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023744 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23745 asdl_seq * _loop1_153_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023746 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023747 (_loop1_153_var = _loop1_153_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023748 )
23749 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023750 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23751 _res = _loop1_153_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023752 goto done;
23753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023754 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023755 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023758 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023759 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023760 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023761 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023762}
23763
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023764// _loop0_135: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023765static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023766_loop0_135_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023767{
23768 D(p->level++);
23769 if (p->error_indicator) {
23770 D(p->level--);
23771 return NULL;
23772 }
23773 void *_res = NULL;
23774 int _mark = p->mark;
23775 int _start_mark = p->mark;
23776 void **_children = PyMem_Malloc(sizeof(void *));
23777 if (!_children) {
23778 p->error_indicator = 1;
23779 PyErr_NoMemory();
23780 D(p->level--);
23781 return NULL;
23782 }
23783 ssize_t _children_capacity = 1;
23784 ssize_t _n = 0;
23785 { // lambda_param_no_default
23786 if (p->error_indicator) {
23787 D(p->level--);
23788 return NULL;
23789 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023790 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 -070023791 arg_ty lambda_param_no_default_var;
23792 while (
23793 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23794 )
23795 {
23796 _res = lambda_param_no_default_var;
23797 if (_n == _children_capacity) {
23798 _children_capacity *= 2;
23799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23800 if (!_new_children) {
23801 p->error_indicator = 1;
23802 PyErr_NoMemory();
23803 D(p->level--);
23804 return NULL;
23805 }
23806 _children = _new_children;
23807 }
23808 _children[_n++] = _res;
23809 _mark = p->mark;
23810 }
23811 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023812 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23814 }
23815 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23816 if (!_seq) {
23817 PyMem_Free(_children);
23818 p->error_indicator = 1;
23819 PyErr_NoMemory();
23820 D(p->level--);
23821 return NULL;
23822 }
23823 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23824 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023825 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023826 D(p->level--);
23827 return _seq;
23828}
23829
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023830// _tmp_136: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023831static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023832_tmp_136_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023833{
23834 D(p->level++);
23835 if (p->error_indicator) {
23836 D(p->level--);
23837 return NULL;
23838 }
23839 void * _res = NULL;
23840 int _mark = p->mark;
23841 { // lambda_slash_with_default
23842 if (p->error_indicator) {
23843 D(p->level--);
23844 return NULL;
23845 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023846 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 -070023847 SlashWithDefault* lambda_slash_with_default_var;
23848 if (
23849 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23850 )
23851 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023852 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 -070023853 _res = lambda_slash_with_default_var;
23854 goto done;
23855 }
23856 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023857 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23859 }
23860 { // lambda_param_with_default+
23861 if (p->error_indicator) {
23862 D(p->level--);
23863 return NULL;
23864 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023865 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23866 asdl_seq * _loop1_154_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023867 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023868 (_loop1_154_var = _loop1_154_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023869 )
23870 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023871 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23872 _res = _loop1_154_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023873 goto done;
23874 }
23875 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023876 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23878 }
23879 _res = NULL;
23880 done:
23881 D(p->level--);
23882 return _res;
23883}
23884
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023885// _tmp_137: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023886static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023887_tmp_137_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023892 return NULL;
23893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023894 void * _res = NULL;
23895 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023896 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023898 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023899 return NULL;
23900 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023901 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023902 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023903 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023904 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023905 )
23906 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023907 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023908 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023909 goto done;
23910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023911 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023912 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023914 }
23915 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023916 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023917 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023918 return NULL;
23919 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023920 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023921 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023922 void *_tmp_155_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023923 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023924 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023925 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023926 (_tmp_155_var = _tmp_155_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023927 )
23928 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023929 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23930 _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023931 goto done;
23932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023933 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023934 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023937 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023938 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023939 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023940 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023941}
23942
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023943// _tmp_138: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023944static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023945_tmp_138_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023946{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023947 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023948 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023949 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023950 return NULL;
23951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023952 void * _res = NULL;
23953 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023954 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023957 return NULL;
23958 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023959 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023960 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023961 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023962 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023963 )
23964 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023965 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023966 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023967 goto done;
23968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023969 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023970 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023972 }
23973 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023975 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023976 return NULL;
23977 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023978 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023979 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023980 void *_tmp_156_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023981 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023982 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023983 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023984 (_tmp_156_var = _tmp_156_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023985 )
23986 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023987 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23988 _res = _PyPegen_dummy_name(p, _literal, _tmp_156_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023989 goto done;
23990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023991 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023992 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023995 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023996 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023997 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023998 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023999}
24000
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024001// _tmp_139: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024002static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024003_tmp_139_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024004{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024005 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024006 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024007 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024008 return NULL;
24009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024010 void * _res = NULL;
24011 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024012 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024013 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024014 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024015 return NULL;
24016 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024017 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024018 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024019 expr_ty z;
24020 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010024021 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024022 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024023 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024024 )
24025 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024026 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 +010024027 _res = z;
24028 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024029 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024030 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024031 return NULL;
24032 }
24033 goto done;
24034 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024035 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024036 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024039 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024040 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024041 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024042 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024043}
24044
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024045// _tmp_140: '.' | '...'
24046static void *
24047_tmp_140_rule(Parser *p)
24048{
24049 D(p->level++);
24050 if (p->error_indicator) {
24051 D(p->level--);
24052 return NULL;
24053 }
24054 void * _res = NULL;
24055 int _mark = p->mark;
24056 { // '.'
24057 if (p->error_indicator) {
24058 D(p->level--);
24059 return NULL;
24060 }
24061 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24062 Token * _literal;
24063 if (
24064 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24065 )
24066 {
24067 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24068 _res = _literal;
24069 goto done;
24070 }
24071 p->mark = _mark;
24072 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24074 }
24075 { // '...'
24076 if (p->error_indicator) {
24077 D(p->level--);
24078 return NULL;
24079 }
24080 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24081 Token * _literal;
24082 if (
24083 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24084 )
24085 {
24086 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24087 _res = _literal;
24088 goto done;
24089 }
24090 p->mark = _mark;
24091 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24093 }
24094 _res = NULL;
24095 done:
24096 D(p->level--);
24097 return _res;
24098}
24099
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024100// _tmp_141: '.' | '...'
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024101static void *
24102_tmp_141_rule(Parser *p)
24103{
24104 D(p->level++);
24105 if (p->error_indicator) {
24106 D(p->level--);
24107 return NULL;
24108 }
24109 void * _res = NULL;
24110 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024111 { // '.'
24112 if (p->error_indicator) {
24113 D(p->level--);
24114 return NULL;
24115 }
24116 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24117 Token * _literal;
24118 if (
24119 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24120 )
24121 {
24122 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24123 _res = _literal;
24124 goto done;
24125 }
24126 p->mark = _mark;
24127 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24129 }
24130 { // '...'
24131 if (p->error_indicator) {
24132 D(p->level--);
24133 return NULL;
24134 }
24135 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24136 Token * _literal;
24137 if (
24138 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24139 )
24140 {
24141 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24142 _res = _literal;
24143 goto done;
24144 }
24145 p->mark = _mark;
24146 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24148 }
24149 _res = NULL;
24150 done:
24151 D(p->level--);
24152 return _res;
24153}
24154
24155// _tmp_142: '@' named_expression NEWLINE
24156static void *
24157_tmp_142_rule(Parser *p)
24158{
24159 D(p->level++);
24160 if (p->error_indicator) {
24161 D(p->level--);
24162 return NULL;
24163 }
24164 void * _res = NULL;
24165 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024166 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024169 return NULL;
24170 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024171 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 +010024172 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024173 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024174 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024175 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024176 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024177 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024178 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024179 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024180 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024181 )
24182 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024183 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 +010024184 _res = f;
24185 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024186 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024188 return NULL;
24189 }
24190 goto done;
24191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024192 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024193 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024196 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024197 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024198 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024199 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024200}
24201
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024202// _tmp_143: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024203static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024204_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024205{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024206 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024208 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024209 return NULL;
24210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024211 void * _res = NULL;
24212 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024213 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024215 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024216 return NULL;
24217 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024218 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024219 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024220 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024221 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024222 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024223 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024224 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024225 )
24226 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024227 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 +010024228 _res = c;
24229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024232 return NULL;
24233 }
24234 goto done;
24235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024236 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024237 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024240 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024241 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024242 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024243 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024244}
24245
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024246// _tmp_144: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024247static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024248_tmp_144_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024249{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024250 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024251 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024253 return NULL;
24254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024255 void * _res = NULL;
24256 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024257 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024258 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024259 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024260 return NULL;
24261 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024262 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024263 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024264 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024265 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024266 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024267 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024268 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024269 )
24270 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024271 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024272 _res = c;
24273 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024276 return NULL;
24277 }
24278 goto done;
24279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024280 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024281 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024284 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024285 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024287 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024288}
24289
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024290// _tmp_145: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024291static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024292_tmp_145_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024293{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024294 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024297 return NULL;
24298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024299 void * _res = NULL;
24300 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024301 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024303 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024304 return NULL;
24305 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024306 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024307 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024308 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024309 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024310 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024311 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024312 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024313 )
24314 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024315 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 +010024316 _res = c;
24317 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024318 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024320 return NULL;
24321 }
24322 goto done;
24323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024324 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024325 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024328 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024329 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024331 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024332}
24333
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024334// _tmp_146: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024335static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024336_tmp_146_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024337{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024338 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024340 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024341 return NULL;
24342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024343 void * _res = NULL;
24344 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024345 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024348 return NULL;
24349 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024350 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024351 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024352 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024353 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024354 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024355 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024356 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024357 )
24358 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024359 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 +010024360 _res = c;
24361 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024362 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024363 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024364 return NULL;
24365 }
24366 goto done;
24367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024368 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024369 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024371 }
24372 _res = NULL;
24373 done:
24374 D(p->level--);
24375 return _res;
24376}
24377
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024378// _tmp_147: 'if' disjunction
24379static void *
24380_tmp_147_rule(Parser *p)
24381{
24382 D(p->level++);
24383 if (p->error_indicator) {
24384 D(p->level--);
24385 return NULL;
24386 }
24387 void * _res = NULL;
24388 int _mark = p->mark;
24389 { // 'if' disjunction
24390 if (p->error_indicator) {
24391 D(p->level--);
24392 return NULL;
24393 }
24394 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24395 Token * _keyword;
24396 expr_ty z;
24397 if (
24398 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24399 &&
24400 (z = disjunction_rule(p)) // disjunction
24401 )
24402 {
24403 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24404 _res = z;
24405 if (_res == NULL && PyErr_Occurred()) {
24406 p->error_indicator = 1;
24407 D(p->level--);
24408 return NULL;
24409 }
24410 goto done;
24411 }
24412 p->mark = _mark;
24413 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24415 }
24416 _res = NULL;
24417 done:
24418 D(p->level--);
24419 return _res;
24420}
24421
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024422// _tmp_148: 'if' disjunction
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024423static void *
24424_tmp_148_rule(Parser *p)
24425{
24426 D(p->level++);
24427 if (p->error_indicator) {
24428 D(p->level--);
24429 return NULL;
24430 }
24431 void * _res = NULL;
24432 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024433 { // 'if' disjunction
24434 if (p->error_indicator) {
24435 D(p->level--);
24436 return NULL;
24437 }
24438 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24439 Token * _keyword;
24440 expr_ty z;
24441 if (
24442 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24443 &&
24444 (z = disjunction_rule(p)) // disjunction
24445 )
24446 {
24447 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24448 _res = z;
24449 if (_res == NULL && PyErr_Occurred()) {
24450 p->error_indicator = 1;
24451 D(p->level--);
24452 return NULL;
24453 }
24454 goto done;
24455 }
24456 p->mark = _mark;
24457 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
24458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24459 }
24460 _res = NULL;
24461 done:
24462 D(p->level--);
24463 return _res;
24464}
24465
24466// _tmp_149: starred_expression | named_expression !'='
24467static void *
24468_tmp_149_rule(Parser *p)
24469{
24470 D(p->level++);
24471 if (p->error_indicator) {
24472 D(p->level--);
24473 return NULL;
24474 }
24475 void * _res = NULL;
24476 int _mark = p->mark;
24477 { // starred_expression
24478 if (p->error_indicator) {
24479 D(p->level--);
24480 return NULL;
24481 }
24482 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
24483 expr_ty starred_expression_var;
24484 if (
24485 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24486 )
24487 {
24488 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
24489 _res = starred_expression_var;
24490 goto done;
24491 }
24492 p->mark = _mark;
24493 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24495 }
24496 { // named_expression !'='
24497 if (p->error_indicator) {
24498 D(p->level--);
24499 return NULL;
24500 }
24501 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
24502 expr_ty named_expression_var;
24503 if (
24504 (named_expression_var = named_expression_rule(p)) // named_expression
24505 &&
24506 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24507 )
24508 {
24509 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
24510 _res = named_expression_var;
24511 goto done;
24512 }
24513 p->mark = _mark;
24514 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24516 }
24517 _res = NULL;
24518 done:
24519 D(p->level--);
24520 return _res;
24521}
24522
24523// _tmp_150: ',' star_target
24524static void *
24525_tmp_150_rule(Parser *p)
24526{
24527 D(p->level++);
24528 if (p->error_indicator) {
24529 D(p->level--);
24530 return NULL;
24531 }
24532 void * _res = NULL;
24533 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024534 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024536 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024537 return NULL;
24538 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024539 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024540 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024541 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024542 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024543 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024544 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024545 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024546 )
24547 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024548 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 +010024549 _res = c;
24550 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024551 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024553 return NULL;
24554 }
24555 goto done;
24556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024557 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024558 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024560 }
24561 _res = NULL;
24562 done:
24563 D(p->level--);
24564 return _res;
24565}
24566
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024567// _tmp_151: star_targets '='
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024568static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024569_tmp_151_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024570{
24571 D(p->level++);
24572 if (p->error_indicator) {
24573 D(p->level--);
24574 return NULL;
24575 }
24576 void * _res = NULL;
24577 int _mark = p->mark;
24578 { // star_targets '='
24579 if (p->error_indicator) {
24580 D(p->level--);
24581 return NULL;
24582 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024583 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024584 Token * _literal;
24585 expr_ty star_targets_var;
24586 if (
24587 (star_targets_var = star_targets_rule(p)) // star_targets
24588 &&
24589 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24590 )
24591 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024592 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 +030024593 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24594 goto done;
24595 }
24596 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024597 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24599 }
24600 _res = NULL;
24601 done:
24602 D(p->level--);
24603 return _res;
24604}
24605
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024606// _tmp_152: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024607static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024608_tmp_152_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024609{
24610 D(p->level++);
24611 if (p->error_indicator) {
24612 D(p->level--);
24613 return NULL;
24614 }
24615 void * _res = NULL;
24616 int _mark = p->mark;
24617 { // star_targets '='
24618 if (p->error_indicator) {
24619 D(p->level--);
24620 return NULL;
24621 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024622 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 -070024623 Token * _literal;
24624 expr_ty star_targets_var;
24625 if (
24626 (star_targets_var = star_targets_rule(p)) // star_targets
24627 &&
24628 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24629 )
24630 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024631 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 -070024632 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24633 goto done;
24634 }
24635 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024636 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24638 }
24639 _res = NULL;
24640 done:
24641 D(p->level--);
24642 return _res;
24643}
24644
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024645// _loop1_153: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024646static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024647_loop1_153_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024648{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024649 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024651 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024652 return NULL;
24653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024654 void *_res = NULL;
24655 int _mark = p->mark;
24656 int _start_mark = p->mark;
24657 void **_children = PyMem_Malloc(sizeof(void *));
24658 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024659 p->error_indicator = 1;
24660 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024661 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024662 return NULL;
24663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024664 ssize_t _children_capacity = 1;
24665 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024666 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024668 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024669 return NULL;
24670 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024671 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 -070024672 NameDefaultPair* param_with_default_var;
24673 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024674 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024675 )
24676 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024677 _res = param_with_default_var;
24678 if (_n == _children_capacity) {
24679 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24681 if (!_new_children) {
24682 p->error_indicator = 1;
24683 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024684 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024685 return NULL;
24686 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024687 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024689 _children[_n++] = _res;
24690 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024692 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024693 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024696 if (_n == 0 || p->error_indicator) {
24697 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024698 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024699 return NULL;
24700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024701 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24702 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024703 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024704 p->error_indicator = 1;
24705 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024706 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024707 return NULL;
24708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024709 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24710 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024711 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024712 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024713 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024714}
24715
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024716// _loop1_154: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024717static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024718_loop1_154_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024719{
24720 D(p->level++);
24721 if (p->error_indicator) {
24722 D(p->level--);
24723 return NULL;
24724 }
24725 void *_res = NULL;
24726 int _mark = p->mark;
24727 int _start_mark = p->mark;
24728 void **_children = PyMem_Malloc(sizeof(void *));
24729 if (!_children) {
24730 p->error_indicator = 1;
24731 PyErr_NoMemory();
24732 D(p->level--);
24733 return NULL;
24734 }
24735 ssize_t _children_capacity = 1;
24736 ssize_t _n = 0;
24737 { // lambda_param_with_default
24738 if (p->error_indicator) {
24739 D(p->level--);
24740 return NULL;
24741 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024742 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 -070024743 NameDefaultPair* lambda_param_with_default_var;
24744 while (
24745 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24746 )
24747 {
24748 _res = lambda_param_with_default_var;
24749 if (_n == _children_capacity) {
24750 _children_capacity *= 2;
24751 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24752 if (!_new_children) {
24753 p->error_indicator = 1;
24754 PyErr_NoMemory();
24755 D(p->level--);
24756 return NULL;
24757 }
24758 _children = _new_children;
24759 }
24760 _children[_n++] = _res;
24761 _mark = p->mark;
24762 }
24763 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024764 D(fprintf(stderr, "%*c%s _loop1_154[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24766 }
24767 if (_n == 0 || p->error_indicator) {
24768 PyMem_Free(_children);
24769 D(p->level--);
24770 return NULL;
24771 }
24772 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24773 if (!_seq) {
24774 PyMem_Free(_children);
24775 p->error_indicator = 1;
24776 PyErr_NoMemory();
24777 D(p->level--);
24778 return NULL;
24779 }
24780 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24781 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024782 _PyPegen_insert_memo(p, _start_mark, _loop1_154_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024783 D(p->level--);
24784 return _seq;
24785}
24786
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024787// _tmp_155: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024788static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024789_tmp_155_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024790{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024791 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024793 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024794 return NULL;
24795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024796 void * _res = NULL;
24797 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024798 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024801 return NULL;
24802 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024803 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024804 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024805 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024806 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024807 )
24808 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024809 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024810 _res = _literal;
24811 goto done;
24812 }
24813 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024814 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24816 }
24817 { // '**'
24818 if (p->error_indicator) {
24819 D(p->level--);
24820 return NULL;
24821 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024822 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024823 Token * _literal;
24824 if (
24825 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24826 )
24827 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024828 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024829 _res = _literal;
24830 goto done;
24831 }
24832 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024833 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24835 }
24836 _res = NULL;
24837 done:
24838 D(p->level--);
24839 return _res;
24840}
24841
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024842// _tmp_156: ':' | '**'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024843static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024844_tmp_156_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024845{
24846 D(p->level++);
24847 if (p->error_indicator) {
24848 D(p->level--);
24849 return NULL;
24850 }
24851 void * _res = NULL;
24852 int _mark = p->mark;
24853 { // ':'
24854 if (p->error_indicator) {
24855 D(p->level--);
24856 return NULL;
24857 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024858 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024859 Token * _literal;
24860 if (
24861 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24862 )
24863 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024864 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024865 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024866 goto done;
24867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024868 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024869 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024871 }
24872 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024873 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024874 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024875 return NULL;
24876 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024877 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024878 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024879 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024880 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024881 )
24882 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024883 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024884 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024885 goto done;
24886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024887 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024888 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024891 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024892 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024893 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024894 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024895}
24896
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024897void *
24898_PyPegen_parse(Parser *p)
24899{
24900 // Initialize keywords
24901 p->keywords = reserved_keywords;
24902 p->n_keyword_lists = n_keyword_lists;
24903
24904 // Run parser
24905 void *result = NULL;
24906 if (p->start_rule == Py_file_input) {
24907 result = file_rule(p);
24908 } else if (p->start_rule == Py_single_input) {
24909 result = interactive_rule(p);
24910 } else if (p->start_rule == Py_eval_input) {
24911 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024912 } else if (p->start_rule == Py_func_type_input) {
24913 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024914 } else if (p->start_rule == Py_fstring_input) {
24915 result = fstring_rule(p);
24916 }
24917
24918 return result;
24919}
24920
24921// The end