blob: 0eb61db39a40a46b2fac5a808a401a288dce3f83 [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
Pablo Galindo87c87b52020-11-18 23:44:30 +0000137#define star_expressions_type 1059
138#define star_expression_type 1060
139#define star_named_expressions_type 1061
140#define star_named_expression_type 1062
141#define named_expression_type 1063
142#define annotated_rhs_type 1064
143#define expressions_type 1065
144#define expression_type 1066
145#define lambdef_type 1067
146#define lambda_params_type 1068
147#define lambda_parameters_type 1069
148#define lambda_slash_no_default_type 1070
149#define lambda_slash_with_default_type 1071
150#define lambda_star_etc_type 1072
151#define lambda_kwds_type 1073
152#define lambda_param_no_default_type 1074
153#define lambda_param_with_default_type 1075
154#define lambda_param_maybe_default_type 1076
155#define lambda_param_type 1077
156#define disjunction_type 1078
157#define conjunction_type 1079
158#define inversion_type 1080
159#define comparison_type 1081
160#define compare_op_bitwise_or_pair_type 1082
161#define eq_bitwise_or_type 1083
162#define noteq_bitwise_or_type 1084
163#define lte_bitwise_or_type 1085
164#define lt_bitwise_or_type 1086
165#define gte_bitwise_or_type 1087
166#define gt_bitwise_or_type 1088
167#define notin_bitwise_or_type 1089
168#define in_bitwise_or_type 1090
169#define isnot_bitwise_or_type 1091
170#define is_bitwise_or_type 1092
171#define bitwise_or_type 1093 // Left-recursive
172#define bitwise_xor_type 1094 // Left-recursive
173#define bitwise_and_type 1095 // Left-recursive
174#define shift_expr_type 1096 // Left-recursive
175#define sum_type 1097 // Left-recursive
176#define term_type 1098 // Left-recursive
177#define factor_type 1099
178#define power_type 1100
179#define await_primary_type 1101
180#define primary_type 1102 // Left-recursive
181#define slices_type 1103
182#define slice_type 1104
183#define atom_type 1105
184#define strings_type 1106
185#define list_type 1107
186#define listcomp_type 1108
187#define tuple_type 1109
188#define group_type 1110
189#define genexp_type 1111
190#define set_type 1112
191#define setcomp_type 1113
192#define dict_type 1114
193#define dictcomp_type 1115
194#define double_starred_kvpairs_type 1116
195#define double_starred_kvpair_type 1117
196#define kvpair_type 1118
197#define for_if_clauses_type 1119
198#define for_if_clause_type 1120
199#define yield_expr_type 1121
200#define arguments_type 1122
201#define args_type 1123
202#define kwargs_type 1124
203#define starred_expression_type 1125
204#define kwarg_or_starred_type 1126
205#define kwarg_or_double_starred_type 1127
206#define star_targets_type 1128
207#define star_targets_seq_type 1129
208#define star_target_type 1130
209#define star_atom_type 1131
210#define single_target_type 1132
211#define single_subscript_attribute_target_type 1133
212#define del_targets_type 1134
213#define del_target_type 1135
214#define del_t_atom_type 1136
215#define targets_type 1137
216#define target_type 1138
217#define t_primary_type 1139 // Left-recursive
218#define t_lookahead_type 1140
219#define t_atom_type 1141
220#define invalid_arguments_type 1142
221#define invalid_kwarg_type 1143
222#define invalid_named_expression_type 1144
223#define invalid_assignment_type 1145
224#define invalid_ann_assign_target_type 1146
225#define invalid_del_stmt_type 1147
226#define invalid_block_type 1148
227#define invalid_primary_type 1149 // Left-recursive
228#define invalid_comprehension_type 1150
229#define invalid_dict_comprehension_type 1151
230#define invalid_parameters_type 1152
231#define invalid_lambda_parameters_type 1153
232#define invalid_star_etc_type 1154
233#define invalid_lambda_star_etc_type 1155
234#define invalid_double_type_comments_type 1156
235#define invalid_with_item_type 1157
236#define invalid_for_target_type 1158
237#define invalid_group_type 1159
238#define invalid_import_from_targets_type 1160
239#define _loop0_1_type 1161
240#define _loop0_2_type 1162
241#define _loop0_4_type 1163
242#define _gather_3_type 1164
243#define _loop0_6_type 1165
244#define _gather_5_type 1166
245#define _loop0_8_type 1167
246#define _gather_7_type 1168
247#define _loop0_10_type 1169
248#define _gather_9_type 1170
249#define _loop1_11_type 1171
250#define _loop0_13_type 1172
251#define _gather_12_type 1173
252#define _tmp_14_type 1174
253#define _tmp_15_type 1175
254#define _tmp_16_type 1176
255#define _tmp_17_type 1177
256#define _tmp_18_type 1178
257#define _tmp_19_type 1179
258#define _tmp_20_type 1180
259#define _tmp_21_type 1181
260#define _loop1_22_type 1182
261#define _tmp_23_type 1183
262#define _tmp_24_type 1184
263#define _loop0_26_type 1185
264#define _gather_25_type 1186
265#define _loop0_28_type 1187
266#define _gather_27_type 1188
267#define _tmp_29_type 1189
268#define _tmp_30_type 1190
269#define _loop0_31_type 1191
270#define _loop1_32_type 1192
271#define _loop0_34_type 1193
272#define _gather_33_type 1194
273#define _tmp_35_type 1195
274#define _loop0_37_type 1196
275#define _gather_36_type 1197
276#define _tmp_38_type 1198
277#define _loop0_40_type 1199
278#define _gather_39_type 1200
279#define _loop0_42_type 1201
280#define _gather_41_type 1202
281#define _loop0_44_type 1203
282#define _gather_43_type 1204
283#define _loop0_46_type 1205
284#define _gather_45_type 1206
285#define _tmp_47_type 1207
286#define _loop1_48_type 1208
287#define _tmp_49_type 1209
288#define _tmp_50_type 1210
289#define _tmp_51_type 1211
290#define _tmp_52_type 1212
291#define _tmp_53_type 1213
292#define _loop0_54_type 1214
293#define _loop0_55_type 1215
294#define _loop0_56_type 1216
295#define _loop1_57_type 1217
296#define _loop0_58_type 1218
297#define _loop1_59_type 1219
298#define _loop1_60_type 1220
299#define _loop1_61_type 1221
300#define _loop0_62_type 1222
301#define _loop1_63_type 1223
302#define _loop0_64_type 1224
303#define _loop1_65_type 1225
304#define _loop0_66_type 1226
305#define _loop1_67_type 1227
306#define _loop1_68_type 1228
307#define _tmp_69_type 1229
308#define _loop1_70_type 1230
309#define _loop0_72_type 1231
310#define _gather_71_type 1232
311#define _loop1_73_type 1233
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +0200312#define _loop0_74_type 1234
Pablo Galindo87c87b52020-11-18 23:44:30 +0000313#define _loop0_75_type 1235
314#define _loop0_76_type 1236
315#define _loop1_77_type 1237
316#define _loop0_78_type 1238
317#define _loop1_79_type 1239
318#define _loop1_80_type 1240
319#define _loop1_81_type 1241
320#define _loop0_82_type 1242
321#define _loop1_83_type 1243
322#define _loop0_84_type 1244
323#define _loop1_85_type 1245
324#define _loop0_86_type 1246
325#define _loop1_87_type 1247
326#define _loop1_88_type 1248
327#define _loop1_89_type 1249
328#define _loop1_90_type 1250
329#define _tmp_91_type 1251
330#define _loop0_93_type 1252
331#define _gather_92_type 1253
332#define _tmp_94_type 1254
333#define _tmp_95_type 1255
334#define _tmp_96_type 1256
335#define _tmp_97_type 1257
336#define _loop1_98_type 1258
337#define _tmp_99_type 1259
338#define _tmp_100_type 1260
339#define _loop0_102_type 1261
340#define _gather_101_type 1262
341#define _loop1_103_type 1263
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +0200342#define _loop0_104_type 1264
Pablo Galindo87c87b52020-11-18 23:44:30 +0000343#define _loop0_105_type 1265
344#define _loop0_107_type 1266
345#define _gather_106_type 1267
346#define _tmp_108_type 1268
347#define _loop0_110_type 1269
348#define _gather_109_type 1270
349#define _loop0_112_type 1271
350#define _gather_111_type 1272
351#define _loop0_114_type 1273
352#define _gather_113_type 1274
353#define _loop0_116_type 1275
354#define _gather_115_type 1276
355#define _loop0_117_type 1277
356#define _loop0_119_type 1278
357#define _gather_118_type 1279
358#define _tmp_120_type 1280
359#define _loop0_122_type 1281
360#define _gather_121_type 1282
361#define _loop0_124_type 1283
362#define _gather_123_type 1284
363#define _tmp_125_type 1285
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +0200364#define _loop0_126_type 1286
Pablo Galindo87c87b52020-11-18 23:44:30 +0000365#define _loop0_127_type 1287
366#define _loop0_128_type 1288
367#define _tmp_129_type 1289
368#define _tmp_130_type 1290
369#define _loop0_131_type 1291
370#define _tmp_132_type 1292
371#define _loop0_133_type 1293
372#define _tmp_134_type 1294
373#define _tmp_135_type 1295
374#define _tmp_136_type 1296
375#define _tmp_137_type 1297
376#define _tmp_138_type 1298
377#define _tmp_139_type 1299
378#define _tmp_140_type 1300
379#define _tmp_141_type 1301
380#define _tmp_142_type 1302
381#define _tmp_143_type 1303
382#define _tmp_144_type 1304
383#define _tmp_145_type 1305
384#define _tmp_146_type 1306
385#define _tmp_147_type 1307
386#define _tmp_148_type 1308
387#define _tmp_149_type 1309
388#define _tmp_150_type 1310
389#define _loop1_151_type 1311
390#define _loop1_152_type 1312
391#define _tmp_153_type 1313
392#define _tmp_154_type 1314
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100393
394static mod_ty file_rule(Parser *p);
395static mod_ty interactive_rule(Parser *p);
396static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700397static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100398static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700399static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100400static asdl_seq* statements_rule(Parser *p);
401static asdl_seq* statement_rule(Parser *p);
402static asdl_seq* statement_newline_rule(Parser *p);
403static asdl_seq* simple_stmt_rule(Parser *p);
404static stmt_ty small_stmt_rule(Parser *p);
405static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300406static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100407static AugOperator* augassign_rule(Parser *p);
408static stmt_ty global_stmt_rule(Parser *p);
409static stmt_ty nonlocal_stmt_rule(Parser *p);
410static stmt_ty yield_stmt_rule(Parser *p);
411static stmt_ty assert_stmt_rule(Parser *p);
412static stmt_ty del_stmt_rule(Parser *p);
413static stmt_ty import_stmt_rule(Parser *p);
414static stmt_ty import_name_rule(Parser *p);
415static stmt_ty import_from_rule(Parser *p);
416static asdl_seq* import_from_targets_rule(Parser *p);
417static asdl_seq* import_from_as_names_rule(Parser *p);
418static alias_ty import_from_as_name_rule(Parser *p);
419static asdl_seq* dotted_as_names_rule(Parser *p);
420static alias_ty dotted_as_name_rule(Parser *p);
421static expr_ty dotted_name_rule(Parser *p);
422static stmt_ty if_stmt_rule(Parser *p);
423static stmt_ty elif_stmt_rule(Parser *p);
424static asdl_seq* else_block_rule(Parser *p);
425static stmt_ty while_stmt_rule(Parser *p);
426static stmt_ty for_stmt_rule(Parser *p);
427static stmt_ty with_stmt_rule(Parser *p);
428static withitem_ty with_item_rule(Parser *p);
429static stmt_ty try_stmt_rule(Parser *p);
430static excepthandler_ty except_block_rule(Parser *p);
431static asdl_seq* finally_block_rule(Parser *p);
432static stmt_ty return_stmt_rule(Parser *p);
433static stmt_ty raise_stmt_rule(Parser *p);
434static stmt_ty function_def_rule(Parser *p);
435static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100436static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100437static arguments_ty params_rule(Parser *p);
438static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700439static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100440static SlashWithDefault* slash_with_default_rule(Parser *p);
441static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100442static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700443static arg_ty param_no_default_rule(Parser *p);
444static NameDefaultPair* param_with_default_rule(Parser *p);
445static NameDefaultPair* param_maybe_default_rule(Parser *p);
446static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100447static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700448static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100449static asdl_seq* decorators_rule(Parser *p);
450static stmt_ty class_def_rule(Parser *p);
451static stmt_ty class_def_raw_rule(Parser *p);
452static asdl_seq* block_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100453static expr_ty star_expressions_rule(Parser *p);
454static expr_ty star_expression_rule(Parser *p);
455static asdl_seq* star_named_expressions_rule(Parser *p);
456static expr_ty star_named_expression_rule(Parser *p);
457static expr_ty named_expression_rule(Parser *p);
458static expr_ty annotated_rhs_rule(Parser *p);
459static expr_ty expressions_rule(Parser *p);
460static expr_ty expression_rule(Parser *p);
461static expr_ty lambdef_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700462static arguments_ty lambda_params_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100463static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700464static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100465static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
466static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100467static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700468static arg_ty lambda_param_no_default_rule(Parser *p);
469static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
470static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
471static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100472static expr_ty disjunction_rule(Parser *p);
473static expr_ty conjunction_rule(Parser *p);
474static expr_ty inversion_rule(Parser *p);
475static expr_ty comparison_rule(Parser *p);
476static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
477static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
478static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
479static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
480static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
481static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
482static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
483static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
484static CmpopExprPair* in_bitwise_or_rule(Parser *p);
485static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
486static CmpopExprPair* is_bitwise_or_rule(Parser *p);
487static expr_ty bitwise_or_rule(Parser *p);
488static expr_ty bitwise_xor_rule(Parser *p);
489static expr_ty bitwise_and_rule(Parser *p);
490static expr_ty shift_expr_rule(Parser *p);
491static expr_ty sum_rule(Parser *p);
492static expr_ty term_rule(Parser *p);
493static expr_ty factor_rule(Parser *p);
494static expr_ty power_rule(Parser *p);
495static expr_ty await_primary_rule(Parser *p);
496static expr_ty primary_rule(Parser *p);
497static expr_ty slices_rule(Parser *p);
498static expr_ty slice_rule(Parser *p);
499static expr_ty atom_rule(Parser *p);
500static expr_ty strings_rule(Parser *p);
501static expr_ty list_rule(Parser *p);
502static expr_ty listcomp_rule(Parser *p);
503static expr_ty tuple_rule(Parser *p);
504static expr_ty group_rule(Parser *p);
505static expr_ty genexp_rule(Parser *p);
506static expr_ty set_rule(Parser *p);
507static expr_ty setcomp_rule(Parser *p);
508static expr_ty dict_rule(Parser *p);
509static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700510static asdl_seq* double_starred_kvpairs_rule(Parser *p);
511static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100512static KeyValuePair* kvpair_rule(Parser *p);
513static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300514static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100515static expr_ty yield_expr_rule(Parser *p);
516static expr_ty arguments_rule(Parser *p);
517static expr_ty args_rule(Parser *p);
518static asdl_seq* kwargs_rule(Parser *p);
519static expr_ty starred_expression_rule(Parser *p);
520static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
521static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
522static expr_ty star_targets_rule(Parser *p);
523static asdl_seq* star_targets_seq_rule(Parser *p);
524static expr_ty star_target_rule(Parser *p);
525static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300526static expr_ty single_target_rule(Parser *p);
527static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100528static asdl_seq* del_targets_rule(Parser *p);
529static expr_ty del_target_rule(Parser *p);
530static expr_ty del_t_atom_rule(Parser *p);
531static asdl_seq* targets_rule(Parser *p);
532static expr_ty target_rule(Parser *p);
533static expr_ty t_primary_rule(Parser *p);
534static void *t_lookahead_rule(Parser *p);
535static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +0200536static void *invalid_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300537static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100538static void *invalid_named_expression_rule(Parser *p);
539static void *invalid_assignment_rule(Parser *p);
Pablo Galindo102ca522020-06-28 00:40:41 +0100540static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300541static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100542static void *invalid_block_rule(Parser *p);
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +0200543static void *invalid_primary_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100544static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700545static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100546static void *invalid_parameters_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700547static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300548static void *invalid_star_etc_rule(Parser *p);
549static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700550static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300551static void *invalid_with_item_rule(Parser *p);
552static void *invalid_for_target_rule(Parser *p);
553static void *invalid_group_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100554static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100555static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700556static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100557static asdl_seq *_loop0_4_rule(Parser *p);
558static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700559static asdl_seq *_loop0_6_rule(Parser *p);
560static asdl_seq *_gather_5_rule(Parser *p);
561static asdl_seq *_loop0_8_rule(Parser *p);
562static asdl_seq *_gather_7_rule(Parser *p);
563static asdl_seq *_loop0_10_rule(Parser *p);
564static asdl_seq *_gather_9_rule(Parser *p);
565static asdl_seq *_loop1_11_rule(Parser *p);
566static asdl_seq *_loop0_13_rule(Parser *p);
567static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100568static void *_tmp_14_rule(Parser *p);
569static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700570static void *_tmp_16_rule(Parser *p);
571static void *_tmp_17_rule(Parser *p);
572static void *_tmp_18_rule(Parser *p);
573static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100574static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700575static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100576static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700577static void *_tmp_23_rule(Parser *p);
578static void *_tmp_24_rule(Parser *p);
579static asdl_seq *_loop0_26_rule(Parser *p);
580static asdl_seq *_gather_25_rule(Parser *p);
581static asdl_seq *_loop0_28_rule(Parser *p);
582static asdl_seq *_gather_27_rule(Parser *p);
583static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300584static void *_tmp_30_rule(Parser *p);
585static asdl_seq *_loop0_31_rule(Parser *p);
586static asdl_seq *_loop1_32_rule(Parser *p);
587static asdl_seq *_loop0_34_rule(Parser *p);
588static asdl_seq *_gather_33_rule(Parser *p);
589static void *_tmp_35_rule(Parser *p);
590static asdl_seq *_loop0_37_rule(Parser *p);
591static asdl_seq *_gather_36_rule(Parser *p);
592static void *_tmp_38_rule(Parser *p);
593static asdl_seq *_loop0_40_rule(Parser *p);
594static asdl_seq *_gather_39_rule(Parser *p);
595static asdl_seq *_loop0_42_rule(Parser *p);
596static asdl_seq *_gather_41_rule(Parser *p);
597static asdl_seq *_loop0_44_rule(Parser *p);
598static asdl_seq *_gather_43_rule(Parser *p);
599static asdl_seq *_loop0_46_rule(Parser *p);
600static asdl_seq *_gather_45_rule(Parser *p);
601static void *_tmp_47_rule(Parser *p);
602static asdl_seq *_loop1_48_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300603static void *_tmp_49_rule(Parser *p);
604static void *_tmp_50_rule(Parser *p);
605static void *_tmp_51_rule(Parser *p);
606static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300607static void *_tmp_53_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300608static asdl_seq *_loop0_54_rule(Parser *p);
609static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300610static asdl_seq *_loop0_56_rule(Parser *p);
611static asdl_seq *_loop1_57_rule(Parser *p);
612static asdl_seq *_loop0_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700613static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300614static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300615static asdl_seq *_loop1_61_rule(Parser *p);
616static asdl_seq *_loop0_62_rule(Parser *p);
617static asdl_seq *_loop1_63_rule(Parser *p);
618static asdl_seq *_loop0_64_rule(Parser *p);
619static asdl_seq *_loop1_65_rule(Parser *p);
620static asdl_seq *_loop0_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300621static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300622static asdl_seq *_loop1_68_rule(Parser *p);
623static void *_tmp_69_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000624static asdl_seq *_loop1_70_rule(Parser *p);
625static asdl_seq *_loop0_72_rule(Parser *p);
626static asdl_seq *_gather_71_rule(Parser *p);
627static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300628static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000629static asdl_seq *_loop0_75_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700630static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000631static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300632static asdl_seq *_loop0_78_rule(Parser *p);
633static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000634static asdl_seq *_loop1_80_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700635static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000636static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300637static asdl_seq *_loop1_83_rule(Parser *p);
638static asdl_seq *_loop0_84_rule(Parser *p);
639static asdl_seq *_loop1_85_rule(Parser *p);
640static asdl_seq *_loop0_86_rule(Parser *p);
641static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000642static asdl_seq *_loop1_88_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700643static asdl_seq *_loop1_89_rule(Parser *p);
644static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000645static void *_tmp_91_rule(Parser *p);
646static asdl_seq *_loop0_93_rule(Parser *p);
647static asdl_seq *_gather_92_rule(Parser *p);
648static void *_tmp_94_rule(Parser *p);
649static void *_tmp_95_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700650static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700651static void *_tmp_97_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000652static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300653static void *_tmp_99_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000654static void *_tmp_100_rule(Parser *p);
655static asdl_seq *_loop0_102_rule(Parser *p);
656static asdl_seq *_gather_101_rule(Parser *p);
657static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300658static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000659static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300660static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000661static asdl_seq *_gather_106_rule(Parser *p);
662static void *_tmp_108_rule(Parser *p);
663static asdl_seq *_loop0_110_rule(Parser *p);
664static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100665static asdl_seq *_loop0_112_rule(Parser *p);
666static asdl_seq *_gather_111_rule(Parser *p);
667static asdl_seq *_loop0_114_rule(Parser *p);
668static asdl_seq *_gather_113_rule(Parser *p);
669static asdl_seq *_loop0_116_rule(Parser *p);
670static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000671static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100672static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000673static asdl_seq *_gather_118_rule(Parser *p);
674static void *_tmp_120_rule(Parser *p);
675static asdl_seq *_loop0_122_rule(Parser *p);
676static asdl_seq *_gather_121_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100677static asdl_seq *_loop0_124_rule(Parser *p);
678static asdl_seq *_gather_123_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000679static void *_tmp_125_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100680static asdl_seq *_loop0_126_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000681static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300682static asdl_seq *_loop0_128_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000683static void *_tmp_129_rule(Parser *p);
684static void *_tmp_130_rule(Parser *p);
685static asdl_seq *_loop0_131_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100686static void *_tmp_132_rule(Parser *p);
687static asdl_seq *_loop0_133_rule(Parser *p);
688static void *_tmp_134_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000689static void *_tmp_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700690static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100691static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700692static void *_tmp_138_rule(Parser *p);
693static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300694static void *_tmp_140_rule(Parser *p);
695static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700696static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300697static void *_tmp_143_rule(Parser *p);
698static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300699static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700700static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300701static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300702static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700703static void *_tmp_149_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700704static void *_tmp_150_rule(Parser *p);
Pablo Galindo87c87b52020-11-18 23:44:30 +0000705static asdl_seq *_loop1_151_rule(Parser *p);
706static asdl_seq *_loop1_152_rule(Parser *p);
707static void *_tmp_153_rule(Parser *p);
708static void *_tmp_154_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100709
710
711// file: statements? $
712static mod_ty
713file_rule(Parser *p)
714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100718 return NULL;
719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100720 mod_ty _res = NULL;
721 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100722 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300725 return NULL;
726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700727 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100728 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100729 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100730 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100731 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100732 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100733 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100734 )
735 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700736 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100737 _res = _PyPegen_make_module ( p , a );
738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100741 return NULL;
742 }
743 goto done;
744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700746 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100753}
754
755// interactive: statement_newline
756static mod_ty
757interactive_rule(Parser *p)
758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100762 return NULL;
763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100764 mod_ty _res = NULL;
765 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100766 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300769 return NULL;
770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700771 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100772 asdl_seq* a;
773 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100774 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100775 )
776 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700777 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100778 _res = Interactive ( a , p -> arena );
779 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100780 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100782 return NULL;
783 }
784 goto done;
785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100786 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700787 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100790 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100791 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700792 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100793 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100794}
795
796// eval: expressions NEWLINE* $
797static mod_ty
798eval_rule(Parser *p)
799{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700800 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100803 return NULL;
804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100805 mod_ty _res = NULL;
806 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100807 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700809 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300810 return NULL;
811 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700812 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100813 asdl_seq * _loop0_1_var;
814 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100815 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100816 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100817 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100818 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100819 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100820 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100821 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100822 )
823 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700824 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100825 _res = Expression ( a , p -> arena );
826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100829 return NULL;
830 }
831 goto done;
832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700834 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100837 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100838 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100840 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100841}
842
Guido van Rossumc001c092020-04-30 12:12:19 -0700843// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
844static mod_ty
845func_type_rule(Parser *p)
846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700847 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700849 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700850 return NULL;
851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100852 mod_ty _res = NULL;
853 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700854 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300857 return NULL;
858 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700859 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100860 Token * _literal;
861 Token * _literal_1;
862 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700863 asdl_seq * _loop0_2_var;
864 void *a;
865 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100866 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700867 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100868 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700869 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100870 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700871 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100872 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100874 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100876 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700877 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100878 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100880 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700881 )
882 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700883 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100884 _res = FunctionType ( a , b , p -> arena );
885 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700886 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700887 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700888 return NULL;
889 }
890 goto done;
891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100892 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700893 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100896 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700897 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700898 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100899 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700900}
901
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100902// fstring: star_expressions
903static expr_ty
904fstring_rule(Parser *p)
905{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700906 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100909 return NULL;
910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100911 expr_ty _res = NULL;
912 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100913 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300916 return NULL;
917 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700918 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100919 expr_ty star_expressions_var;
920 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100921 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100922 )
923 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700924 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100925 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100926 goto done;
927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100928 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700929 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100932 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100933 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700934 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100935 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100936}
937
Guido van Rossumc001c092020-04-30 12:12:19 -0700938// type_expressions:
939// | ','.expression+ ',' '*' expression ',' '**' expression
940// | ','.expression+ ',' '*' expression
941// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700942// | '*' expression ',' '**' expression
943// | '*' expression
944// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700945// | ','.expression+
946static asdl_seq*
947type_expressions_rule(Parser *p)
948{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700949 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700951 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700952 return NULL;
953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100954 asdl_seq* _res = NULL;
955 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700956 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300957 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700958 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300959 return NULL;
960 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700961 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100962 Token * _literal;
963 Token * _literal_1;
964 Token * _literal_2;
965 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700966 asdl_seq * a;
967 expr_ty b;
968 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700969 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100970 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700971 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100972 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700973 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100974 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100976 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100980 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100982 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700983 )
984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700985 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100986 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
987 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700988 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700989 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700990 return NULL;
991 }
992 goto done;
993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100994 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700995 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700997 }
998 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001001 return NULL;
1002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001003 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001004 Token * _literal;
1005 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001006 asdl_seq * a;
1007 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001008 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001009 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001010 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001011 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001012 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001013 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001015 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001016 )
1017 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001018 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001019 _res = _PyPegen_seq_append_to_end ( p , a , b );
1020 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001022 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001023 return NULL;
1024 }
1025 goto done;
1026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001028 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001030 }
1031 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001033 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001034 return NULL;
1035 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001036 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001037 Token * _literal;
1038 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001039 asdl_seq * a;
1040 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001041 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001042 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001043 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001044 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001045 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001046 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001048 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001049 )
1050 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001051 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001052 _res = _PyPegen_seq_append_to_end ( p , a , b );
1053 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001054 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001055 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001056 return NULL;
1057 }
1058 goto done;
1059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001060 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001061 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001063 }
Shantanu603d3542020-05-03 22:08:14 -07001064 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001067 return NULL;
1068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001069 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001070 Token * _literal;
1071 Token * _literal_1;
1072 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001073 expr_ty a;
1074 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001075 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001076 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001077 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001078 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001079 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001080 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001081 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001082 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001083 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001084 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001085 )
1086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001087 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001088 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1089 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001090 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001091 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001092 return NULL;
1093 }
1094 goto done;
1095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001096 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001097 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001099 }
1100 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001101 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001102 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001103 return NULL;
1104 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001105 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001106 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001107 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001108 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001109 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001110 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001111 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001112 )
1113 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001114 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001115 _res = _PyPegen_singleton_seq ( p , a );
1116 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001117 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001118 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001119 return NULL;
1120 }
1121 goto done;
1122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001123 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001124 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001126 }
1127 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001130 return NULL;
1131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001132 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001133 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001134 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001135 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001136 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001138 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001139 )
1140 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001141 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001142 _res = _PyPegen_singleton_seq ( p , a );
1143 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001144 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001145 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001146 return NULL;
1147 }
1148 goto done;
1149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001150 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001151 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001153 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001154 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001157 return NULL;
1158 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001159 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001160 asdl_seq * _gather_9_var;
1161 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001162 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001163 )
1164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001165 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001166 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001167 goto done;
1168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001170 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001173 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001174 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001175 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001176 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001177}
1178
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001179// statements: statement+
1180static asdl_seq*
1181statements_rule(Parser *p)
1182{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001183 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001185 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001186 return NULL;
1187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001188 asdl_seq* _res = NULL;
1189 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001190 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001193 return NULL;
1194 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001195 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001196 asdl_seq * a;
1197 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001198 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001199 )
1200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001201 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001202 _res = _PyPegen_seq_flatten ( p , a );
1203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001206 return NULL;
1207 }
1208 goto done;
1209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001211 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001214 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001215 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001216 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001217 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001218}
1219
1220// statement: compound_stmt | simple_stmt
1221static asdl_seq*
1222statement_rule(Parser *p)
1223{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001224 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001226 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001227 return NULL;
1228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001229 asdl_seq* _res = NULL;
1230 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001231 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001233 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001234 return NULL;
1235 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001236 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001237 stmt_ty a;
1238 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001239 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001240 )
1241 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001242 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001243 _res = _PyPegen_singleton_seq ( p , a );
1244 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001247 return NULL;
1248 }
1249 goto done;
1250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001251 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001252 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001254 }
1255 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001258 return NULL;
1259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001260 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001261 asdl_seq* simple_stmt_var;
1262 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001263 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001264 )
1265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001266 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001267 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001268 goto done;
1269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001271 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001274 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001275 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001278}
1279
1280// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1281static asdl_seq*
1282statement_newline_rule(Parser *p)
1283{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001284 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001287 return NULL;
1288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001289 asdl_seq* _res = NULL;
1290 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001294 return NULL;
1295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001296 int _start_lineno = p->tokens[_mark]->lineno;
1297 UNUSED(_start_lineno); // Only used by EXTRA macro
1298 int _start_col_offset = p->tokens[_mark]->col_offset;
1299 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001300 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001303 return NULL;
1304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001305 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001306 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001307 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001309 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001310 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001311 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001312 )
1313 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001314 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001315 _res = _PyPegen_singleton_seq ( p , a );
1316 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001317 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001319 return NULL;
1320 }
1321 goto done;
1322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001324 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001326 }
1327 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001330 return NULL;
1331 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001332 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001333 asdl_seq* simple_stmt_var;
1334 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001335 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001336 )
1337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001338 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001339 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001340 goto done;
1341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001342 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001343 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001345 }
1346 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001349 return NULL;
1350 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001351 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001352 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001353 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001354 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001355 )
1356 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001357 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1359 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001361 return NULL;
1362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001363 int _end_lineno = _token->end_lineno;
1364 UNUSED(_end_lineno); // Only used by EXTRA macro
1365 int _end_col_offset = _token->end_col_offset;
1366 UNUSED(_end_col_offset); // Only used by EXTRA macro
1367 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1368 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001369 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001371 return NULL;
1372 }
1373 goto done;
1374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001376 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001378 }
1379 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001381 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001382 return NULL;
1383 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001384 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001385 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001386 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001387 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001388 )
1389 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001390 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001391 _res = _PyPegen_interactive_exit ( p );
1392 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001393 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001395 return NULL;
1396 }
1397 goto done;
1398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001399 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001400 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001403 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001404 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001405 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001406 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001407}
1408
1409// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1410static asdl_seq*
1411simple_stmt_rule(Parser *p)
1412{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001413 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001416 return NULL;
1417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001418 asdl_seq* _res = NULL;
1419 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001420 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001423 return NULL;
1424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001425 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001426 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001427 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001428 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001429 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001430 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001431 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001432 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001433 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001434 )
1435 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001436 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001437 _res = _PyPegen_singleton_seq ( p , a );
1438 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001441 return NULL;
1442 }
1443 goto done;
1444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001446 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001448 }
1449 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001452 return NULL;
1453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001454 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001455 void *_opt_var;
1456 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001457 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001458 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001459 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001460 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001461 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001462 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001464 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001465 )
1466 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001467 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001468 _res = a;
1469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001472 return NULL;
1473 }
1474 goto done;
1475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001477 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001480 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001481 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001482 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001483 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001484}
1485
1486// small_stmt:
1487// | assignment
1488// | star_expressions
1489// | &'return' return_stmt
1490// | &('import' | 'from') import_stmt
1491// | &'raise' raise_stmt
1492// | 'pass'
1493// | &'del' del_stmt
1494// | &'yield' yield_stmt
1495// | &'assert' assert_stmt
1496// | 'break'
1497// | 'continue'
1498// | &'global' global_stmt
1499// | &'nonlocal' nonlocal_stmt
1500static stmt_ty
1501small_stmt_rule(Parser *p)
1502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001506 return NULL;
1507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001508 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001509 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001511 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001513 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001516 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001517 return NULL;
1518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001519 int _start_lineno = p->tokens[_mark]->lineno;
1520 UNUSED(_start_lineno); // Only used by EXTRA macro
1521 int _start_col_offset = p->tokens[_mark]->col_offset;
1522 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001523 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001525 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001526 return NULL;
1527 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001528 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001529 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001530 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001531 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001532 )
1533 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001534 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001535 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001536 goto done;
1537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001538 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001539 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001541 }
1542 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001544 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001545 return NULL;
1546 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001547 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001548 expr_ty e;
1549 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001550 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001551 )
1552 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001553 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1555 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001557 return NULL;
1558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001559 int _end_lineno = _token->end_lineno;
1560 UNUSED(_end_lineno); // Only used by EXTRA macro
1561 int _end_col_offset = _token->end_col_offset;
1562 UNUSED(_end_col_offset); // Only used by EXTRA macro
1563 _res = _Py_Expr ( e , EXTRA );
1564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001567 return NULL;
1568 }
1569 goto done;
1570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001572 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001574 }
1575 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001578 return NULL;
1579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001580 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001581 stmt_ty return_stmt_var;
1582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001583 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001585 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001586 )
1587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001588 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001589 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001590 goto done;
1591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001593 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001595 }
1596 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001599 return NULL;
1600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001601 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001602 stmt_ty import_stmt_var;
1603 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001604 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001605 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001606 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001607 )
1608 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001609 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001610 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001611 goto done;
1612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001613 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001614 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001616 }
1617 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001620 return NULL;
1621 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001622 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001623 stmt_ty raise_stmt_var;
1624 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001625 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001626 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001627 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001628 )
1629 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001630 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001631 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001632 goto done;
1633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001634 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001635 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001637 }
1638 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001639 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001640 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001641 return NULL;
1642 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001643 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001644 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001645 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001646 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001647 )
1648 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001649 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1651 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001652 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001653 return NULL;
1654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001655 int _end_lineno = _token->end_lineno;
1656 UNUSED(_end_lineno); // Only used by EXTRA macro
1657 int _end_col_offset = _token->end_col_offset;
1658 UNUSED(_end_col_offset); // Only used by EXTRA macro
1659 _res = _Py_Pass ( EXTRA );
1660 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001661 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001663 return NULL;
1664 }
1665 goto done;
1666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001667 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001668 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001670 }
1671 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001674 return NULL;
1675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001676 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001677 stmt_ty del_stmt_var;
1678 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001679 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001680 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001681 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001682 )
1683 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001684 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001685 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001686 goto done;
1687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001689 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001691 }
1692 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001695 return NULL;
1696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001697 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001698 stmt_ty yield_stmt_var;
1699 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001700 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001701 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001702 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001703 )
1704 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001705 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001706 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001707 goto done;
1708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001710 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001712 }
1713 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001716 return NULL;
1717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001718 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001719 stmt_ty assert_stmt_var;
1720 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001721 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001723 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001724 )
1725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001726 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001727 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001728 goto done;
1729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001730 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001731 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001733 }
1734 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001737 return NULL;
1738 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001739 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001740 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001741 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001742 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001743 )
1744 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001745 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1747 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001749 return NULL;
1750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001751 int _end_lineno = _token->end_lineno;
1752 UNUSED(_end_lineno); // Only used by EXTRA macro
1753 int _end_col_offset = _token->end_col_offset;
1754 UNUSED(_end_col_offset); // Only used by EXTRA macro
1755 _res = _Py_Break ( EXTRA );
1756 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001757 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001759 return NULL;
1760 }
1761 goto done;
1762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001764 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001766 }
1767 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001769 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001770 return NULL;
1771 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001772 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001773 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001774 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001775 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001776 )
1777 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001778 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1780 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001782 return NULL;
1783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001784 int _end_lineno = _token->end_lineno;
1785 UNUSED(_end_lineno); // Only used by EXTRA macro
1786 int _end_col_offset = _token->end_col_offset;
1787 UNUSED(_end_col_offset); // Only used by EXTRA macro
1788 _res = _Py_Continue ( EXTRA );
1789 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001790 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001791 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001792 return NULL;
1793 }
1794 goto done;
1795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001796 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001797 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001799 }
1800 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001803 return NULL;
1804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001805 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001806 stmt_ty global_stmt_var;
1807 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001808 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001810 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001811 )
1812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001813 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001814 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001815 goto done;
1816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001818 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001820 }
1821 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001824 return NULL;
1825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001826 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001827 stmt_ty nonlocal_stmt_var;
1828 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001829 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001830 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001831 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001832 )
1833 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001834 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001835 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001836 goto done;
1837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001838 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001839 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001842 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001843 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001844 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001846 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001847}
1848
1849// compound_stmt:
1850// | &('def' | '@' | ASYNC) function_def
1851// | &'if' if_stmt
1852// | &('class' | '@') class_def
1853// | &('with' | ASYNC) with_stmt
1854// | &('for' | ASYNC) for_stmt
1855// | &'try' try_stmt
1856// | &'while' while_stmt
1857static stmt_ty
1858compound_stmt_rule(Parser *p)
1859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001860 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001863 return NULL;
1864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001865 stmt_ty _res = NULL;
1866 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001867 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001870 return NULL;
1871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001872 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001873 stmt_ty function_def_var;
1874 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001875 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001876 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001877 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001878 )
1879 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001880 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001881 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001882 goto done;
1883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001884 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001885 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001887 }
1888 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001890 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001891 return NULL;
1892 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001893 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001894 stmt_ty if_stmt_var;
1895 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001896 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001897 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001898 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001899 )
1900 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001901 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001902 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001903 goto done;
1904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001906 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001908 }
1909 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001912 return NULL;
1913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001914 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001915 stmt_ty class_def_var;
1916 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001917 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001918 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001919 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001920 )
1921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001922 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001923 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001924 goto done;
1925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001927 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001929 }
1930 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001933 return NULL;
1934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001935 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001936 stmt_ty with_stmt_var;
1937 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001938 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001940 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001941 )
1942 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001943 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001944 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001945 goto done;
1946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001947 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001948 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001950 }
1951 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001953 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001954 return NULL;
1955 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001956 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001957 stmt_ty for_stmt_var;
1958 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001959 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001961 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001962 )
1963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001964 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001965 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001966 goto done;
1967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001969 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001971 }
1972 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001975 return NULL;
1976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001977 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001978 stmt_ty try_stmt_var;
1979 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001980 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001982 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001983 )
1984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001985 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001986 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001987 goto done;
1988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001989 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001990 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001992 }
1993 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001996 return NULL;
1997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001998 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001999 stmt_ty while_stmt_var;
2000 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002001 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002002 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002003 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002004 )
2005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002006 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002007 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002008 goto done;
2009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002011 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002014 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002015 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002017 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002018}
2019
2020// assignment:
2021// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002022// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002023// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002024// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002025// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002026static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002027assignment_rule(Parser *p)
2028{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002029 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002032 return NULL;
2033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002034 stmt_ty _res = NULL;
2035 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002036 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2037 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002038 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002039 return NULL;
2040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002041 int _start_lineno = p->tokens[_mark]->lineno;
2042 UNUSED(_start_lineno); // Only used by EXTRA macro
2043 int _start_col_offset = p->tokens[_mark]->col_offset;
2044 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002045 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002047 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002048 return NULL;
2049 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002050 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002051 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002052 expr_ty a;
2053 expr_ty b;
2054 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002055 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002056 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002057 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002058 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002059 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002060 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002062 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002063 )
2064 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002065 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002066 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2067 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002069 return NULL;
2070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002071 int _end_lineno = _token->end_lineno;
2072 UNUSED(_end_lineno); // Only used by EXTRA macro
2073 int _end_col_offset = _token->end_col_offset;
2074 UNUSED(_end_col_offset); // Only used by EXTRA macro
2075 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2076 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002077 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002079 return NULL;
2080 }
2081 goto done;
2082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002083 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002084 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002086 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002087 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002088 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002089 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002090 return NULL;
2091 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002092 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002093 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002094 void *a;
2095 expr_ty b;
2096 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002097 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002098 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002099 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002100 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002101 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002102 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002104 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002105 )
2106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002107 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2109 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002110 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002111 return NULL;
2112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002113 int _end_lineno = _token->end_lineno;
2114 UNUSED(_end_lineno); // Only used by EXTRA macro
2115 int _end_col_offset = _token->end_col_offset;
2116 UNUSED(_end_col_offset); // Only used by EXTRA macro
2117 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2118 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002119 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002121 return NULL;
2122 }
2123 goto done;
2124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002125 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002126 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002128 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002129 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002132 return NULL;
2133 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002134 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002135 asdl_seq * a;
2136 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002137 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002138 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002139 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002140 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002141 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002142 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002143 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002145 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002146 )
2147 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002148 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2150 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002152 return NULL;
2153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002154 int _end_lineno = _token->end_lineno;
2155 UNUSED(_end_lineno); // Only used by EXTRA macro
2156 int _end_col_offset = _token->end_col_offset;
2157 UNUSED(_end_col_offset); // Only used by EXTRA macro
2158 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002162 return NULL;
2163 }
2164 goto done;
2165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002167 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002169 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002170 { // single_target augassign ~ (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002173 return NULL;
2174 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002175 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2176 int _cut_var = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002177 expr_ty a;
2178 AugOperator* b;
2179 void *c;
2180 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002181 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002182 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002183 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002184 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002185 (_cut_var = 1)
2186 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002187 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002188 )
2189 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002190 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2192 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002194 return NULL;
2195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002196 int _end_lineno = _token->end_lineno;
2197 UNUSED(_end_lineno); // Only used by EXTRA macro
2198 int _end_col_offset = _token->end_col_offset;
2199 UNUSED(_end_col_offset); // Only used by EXTRA macro
2200 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002204 return NULL;
2205 }
2206 goto done;
2207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002209 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2211 if (_cut_var) {
2212 D(p->level--);
2213 return NULL;
2214 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002215 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02002216 if (p->call_invalid_rules) { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002219 return NULL;
2220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002221 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002222 void *invalid_assignment_var;
2223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002224 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002225 )
2226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002227 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002228 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002229 goto done;
2230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002231 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002232 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002235 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002236 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002237 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002238 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002239}
2240
2241// augassign:
2242// | '+='
2243// | '-='
2244// | '*='
2245// | '@='
2246// | '/='
2247// | '%='
2248// | '&='
2249// | '|='
2250// | '^='
2251// | '<<='
2252// | '>>='
2253// | '**='
2254// | '//='
2255static AugOperator*
2256augassign_rule(Parser *p)
2257{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002258 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002261 return NULL;
2262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002263 AugOperator* _res = NULL;
2264 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002268 return NULL;
2269 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002270 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002271 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002272 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002273 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002274 )
2275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002276 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002277 _res = _PyPegen_augoperator ( p , Add );
2278 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002279 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002281 return NULL;
2282 }
2283 goto done;
2284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002285 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002286 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002288 }
2289 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002292 return NULL;
2293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002294 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002295 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002296 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002297 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002298 )
2299 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002300 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002301 _res = _PyPegen_augoperator ( p , Sub );
2302 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002303 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002305 return NULL;
2306 }
2307 goto done;
2308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002309 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002310 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002312 }
2313 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002316 return NULL;
2317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002318 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002319 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002320 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002321 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002322 )
2323 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002324 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002325 _res = _PyPegen_augoperator ( p , Mult );
2326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002327 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002329 return NULL;
2330 }
2331 goto done;
2332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002333 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002334 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002336 }
2337 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002340 return NULL;
2341 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002342 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002343 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002344 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002345 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002346 )
2347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002348 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002349 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2350 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002351 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002353 return NULL;
2354 }
2355 goto done;
2356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002357 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002358 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002360 }
2361 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002364 return NULL;
2365 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002366 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002367 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002368 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002369 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002370 )
2371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002372 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002373 _res = _PyPegen_augoperator ( p , Div );
2374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002377 return NULL;
2378 }
2379 goto done;
2380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002382 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002384 }
2385 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002388 return NULL;
2389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002390 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002391 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002392 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002393 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002394 )
2395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002396 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002397 _res = _PyPegen_augoperator ( p , Mod );
2398 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002399 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002401 return NULL;
2402 }
2403 goto done;
2404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002405 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002406 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002408 }
2409 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002411 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002412 return NULL;
2413 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002414 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002415 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002416 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002417 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002418 )
2419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002420 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002421 _res = _PyPegen_augoperator ( p , BitAnd );
2422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002425 return NULL;
2426 }
2427 goto done;
2428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002430 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002432 }
2433 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002436 return NULL;
2437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002438 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002439 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002440 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002441 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002442 )
2443 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002444 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002445 _res = _PyPegen_augoperator ( p , BitOr );
2446 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002447 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002449 return NULL;
2450 }
2451 goto done;
2452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002454 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002456 }
2457 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002460 return NULL;
2461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002462 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002463 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002464 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002465 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002466 )
2467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002468 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002469 _res = _PyPegen_augoperator ( p , BitXor );
2470 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002471 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002473 return NULL;
2474 }
2475 goto done;
2476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002477 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002478 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002480 }
2481 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002484 return NULL;
2485 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002486 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002487 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002488 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002489 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002490 )
2491 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002492 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002493 _res = _PyPegen_augoperator ( p , LShift );
2494 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002495 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002497 return NULL;
2498 }
2499 goto done;
2500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002502 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002504 }
2505 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002507 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002508 return NULL;
2509 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002510 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002511 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002512 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002513 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002514 )
2515 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002516 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002517 _res = _PyPegen_augoperator ( p , RShift );
2518 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002521 return NULL;
2522 }
2523 goto done;
2524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002525 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002526 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002528 }
2529 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002532 return NULL;
2533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002534 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002535 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002536 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002537 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002538 )
2539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002540 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002541 _res = _PyPegen_augoperator ( p , Pow );
2542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002545 return NULL;
2546 }
2547 goto done;
2548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002550 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002552 }
2553 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002556 return NULL;
2557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002558 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002559 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002560 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002561 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002562 )
2563 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002564 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002565 _res = _PyPegen_augoperator ( p , FloorDiv );
2566 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002567 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002569 return NULL;
2570 }
2571 goto done;
2572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002573 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002574 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002577 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002578 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002579 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002580 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002581}
2582
2583// global_stmt: 'global' ','.NAME+
2584static stmt_ty
2585global_stmt_rule(Parser *p)
2586{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002587 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002590 return NULL;
2591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002592 stmt_ty _res = NULL;
2593 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002594 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002597 return NULL;
2598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002599 int _start_lineno = p->tokens[_mark]->lineno;
2600 UNUSED(_start_lineno); // Only used by EXTRA macro
2601 int _start_col_offset = p->tokens[_mark]->col_offset;
2602 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002603 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002604 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002605 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002606 return NULL;
2607 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002608 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002609 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002610 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002611 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002612 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002614 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002615 )
2616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002617 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002618 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2619 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002621 return NULL;
2622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002623 int _end_lineno = _token->end_lineno;
2624 UNUSED(_end_lineno); // Only used by EXTRA macro
2625 int _end_col_offset = _token->end_col_offset;
2626 UNUSED(_end_col_offset); // Only used by EXTRA macro
2627 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2628 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002631 return NULL;
2632 }
2633 goto done;
2634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002636 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002639 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002640 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002641 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002642 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002643}
2644
2645// nonlocal_stmt: 'nonlocal' ','.NAME+
2646static stmt_ty
2647nonlocal_stmt_rule(Parser *p)
2648{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002649 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002652 return NULL;
2653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002654 stmt_ty _res = NULL;
2655 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002656 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2657 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002658 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002659 return NULL;
2660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002661 int _start_lineno = p->tokens[_mark]->lineno;
2662 UNUSED(_start_lineno); // Only used by EXTRA macro
2663 int _start_col_offset = p->tokens[_mark]->col_offset;
2664 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002665 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002667 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002668 return NULL;
2669 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002670 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002671 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002672 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002673 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002674 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002676 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002677 )
2678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002679 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002680 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2681 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002682 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002683 return NULL;
2684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002685 int _end_lineno = _token->end_lineno;
2686 UNUSED(_end_lineno); // Only used by EXTRA macro
2687 int _end_col_offset = _token->end_col_offset;
2688 UNUSED(_end_col_offset); // Only used by EXTRA macro
2689 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2690 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002691 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002693 return NULL;
2694 }
2695 goto done;
2696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002697 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002698 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002701 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002702 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002703 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002704 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002705}
2706
2707// yield_stmt: yield_expr
2708static stmt_ty
2709yield_stmt_rule(Parser *p)
2710{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002711 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002714 return NULL;
2715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002716 stmt_ty _res = NULL;
2717 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2719 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002720 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002721 return NULL;
2722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002723 int _start_lineno = p->tokens[_mark]->lineno;
2724 UNUSED(_start_lineno); // Only used by EXTRA macro
2725 int _start_col_offset = p->tokens[_mark]->col_offset;
2726 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002727 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002730 return NULL;
2731 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002732 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002733 expr_ty y;
2734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002735 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002736 )
2737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002738 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002739 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2740 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002742 return NULL;
2743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002744 int _end_lineno = _token->end_lineno;
2745 UNUSED(_end_lineno); // Only used by EXTRA macro
2746 int _end_col_offset = _token->end_col_offset;
2747 UNUSED(_end_col_offset); // Only used by EXTRA macro
2748 _res = _Py_Expr ( y , EXTRA );
2749 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002750 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002752 return NULL;
2753 }
2754 goto done;
2755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002756 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002757 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002760 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002761 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002762 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002763 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002764}
2765
2766// assert_stmt: 'assert' expression [',' expression]
2767static stmt_ty
2768assert_stmt_rule(Parser *p)
2769{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002770 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002773 return NULL;
2774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002775 stmt_ty _res = NULL;
2776 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002777 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002780 return NULL;
2781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002782 int _start_lineno = p->tokens[_mark]->lineno;
2783 UNUSED(_start_lineno); // Only used by EXTRA macro
2784 int _start_col_offset = p->tokens[_mark]->col_offset;
2785 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002786 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002789 return NULL;
2790 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002791 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002792 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002793 expr_ty a;
2794 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002796 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002798 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002799 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002800 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002801 )
2802 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002803 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002804 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2805 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002807 return NULL;
2808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002809 int _end_lineno = _token->end_lineno;
2810 UNUSED(_end_lineno); // Only used by EXTRA macro
2811 int _end_col_offset = _token->end_col_offset;
2812 UNUSED(_end_col_offset); // Only used by EXTRA macro
2813 _res = _Py_Assert ( a , b , EXTRA );
2814 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002815 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002817 return NULL;
2818 }
2819 goto done;
2820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002821 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002822 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002825 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002826 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002827 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002828 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002829}
2830
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002831// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002832static stmt_ty
2833del_stmt_rule(Parser *p)
2834{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002835 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002838 return NULL;
2839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002840 stmt_ty _res = NULL;
2841 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2843 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002845 return NULL;
2846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002847 int _start_lineno = p->tokens[_mark]->lineno;
2848 UNUSED(_start_lineno); // Only used by EXTRA macro
2849 int _start_col_offset = p->tokens[_mark]->col_offset;
2850 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002851 { // 'del' del_targets &(';' | NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002853 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002854 return NULL;
2855 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002856 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002857 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002858 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002859 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002860 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002862 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002863 &&
2864 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002865 )
2866 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002867 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2869 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002871 return NULL;
2872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002873 int _end_lineno = _token->end_lineno;
2874 UNUSED(_end_lineno); // Only used by EXTRA macro
2875 int _end_col_offset = _token->end_col_offset;
2876 UNUSED(_end_col_offset); // Only used by EXTRA macro
2877 _res = _Py_Delete ( a , EXTRA );
2878 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002879 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002880 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002881 return NULL;
2882 }
2883 goto done;
2884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002885 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002886 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2888 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02002889 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002890 if (p->error_indicator) {
2891 D(p->level--);
2892 return NULL;
2893 }
2894 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2895 void *invalid_del_stmt_var;
2896 if (
2897 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2898 )
2899 {
2900 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2901 _res = invalid_del_stmt_var;
2902 goto done;
2903 }
2904 p->mark = _mark;
2905 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002908 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002909 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002910 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002911 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002912}
2913
2914// import_stmt: import_name | import_from
2915static stmt_ty
2916import_stmt_rule(Parser *p)
2917{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002918 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002921 return NULL;
2922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002923 stmt_ty _res = NULL;
2924 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002925 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002927 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002928 return NULL;
2929 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002930 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002931 stmt_ty import_name_var;
2932 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002933 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002934 )
2935 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002936 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002937 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002938 goto done;
2939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002941 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002943 }
2944 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002946 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002947 return NULL;
2948 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002949 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002950 stmt_ty import_from_var;
2951 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002952 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002953 )
2954 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002955 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002956 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002957 goto done;
2958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002960 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002963 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002964 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002966 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002967}
2968
2969// import_name: 'import' dotted_as_names
2970static stmt_ty
2971import_name_rule(Parser *p)
2972{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002973 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002975 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002976 return NULL;
2977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002978 stmt_ty _res = NULL;
2979 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002983 return NULL;
2984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002985 int _start_lineno = p->tokens[_mark]->lineno;
2986 UNUSED(_start_lineno); // Only used by EXTRA macro
2987 int _start_col_offset = p->tokens[_mark]->col_offset;
2988 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002989 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002992 return NULL;
2993 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002994 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002995 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002996 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002997 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002998 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003000 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003001 )
3002 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003003 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3005 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003006 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003007 return NULL;
3008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003009 int _end_lineno = _token->end_lineno;
3010 UNUSED(_end_lineno); // Only used by EXTRA macro
3011 int _end_col_offset = _token->end_col_offset;
3012 UNUSED(_end_col_offset); // Only used by EXTRA macro
3013 _res = _Py_Import ( a , EXTRA );
3014 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003015 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003017 return NULL;
3018 }
3019 goto done;
3020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003021 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003022 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003025 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003026 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003027 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003028 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003029}
3030
3031// import_from:
3032// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3033// | 'from' (('.' | '...'))+ 'import' import_from_targets
3034static stmt_ty
3035import_from_rule(Parser *p)
3036{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003037 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003038 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003039 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003040 return NULL;
3041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003042 stmt_ty _res = NULL;
3043 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003044 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3045 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003047 return NULL;
3048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003049 int _start_lineno = p->tokens[_mark]->lineno;
3050 UNUSED(_start_lineno); // Only used by EXTRA macro
3051 int _start_col_offset = p->tokens[_mark]->col_offset;
3052 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003053 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003055 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003056 return NULL;
3057 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003058 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003059 Token * _keyword;
3060 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003061 asdl_seq * a;
3062 expr_ty b;
3063 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003064 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003065 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003066 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003067 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003068 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003069 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003071 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003073 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003074 )
3075 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003076 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3078 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003080 return NULL;
3081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003082 int _end_lineno = _token->end_lineno;
3083 UNUSED(_end_lineno); // Only used by EXTRA macro
3084 int _end_col_offset = _token->end_col_offset;
3085 UNUSED(_end_col_offset); // Only used by EXTRA macro
3086 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3087 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003088 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003090 return NULL;
3091 }
3092 goto done;
3093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003094 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003095 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003097 }
3098 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003101 return NULL;
3102 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003103 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003104 Token * _keyword;
3105 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003106 asdl_seq * a;
3107 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003108 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003109 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003110 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003111 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003112 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003113 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003115 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003116 )
3117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003118 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3120 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003122 return NULL;
3123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003124 int _end_lineno = _token->end_lineno;
3125 UNUSED(_end_lineno); // Only used by EXTRA macro
3126 int _end_col_offset = _token->end_col_offset;
3127 UNUSED(_end_col_offset); // Only used by EXTRA macro
3128 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003132 return NULL;
3133 }
3134 goto done;
3135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003137 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003140 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003141 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003142 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003143 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003144}
3145
Pablo Galindo275d7e12020-05-21 22:04:54 +01003146// import_from_targets:
3147// | '(' import_from_as_names ','? ')'
3148// | import_from_as_names !','
3149// | '*'
3150// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003151static asdl_seq*
3152import_from_targets_rule(Parser *p)
3153{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003154 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003157 return NULL;
3158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003159 asdl_seq* _res = NULL;
3160 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003161 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003163 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003164 return NULL;
3165 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003166 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003167 Token * _literal;
3168 Token * _literal_1;
3169 void *_opt_var;
3170 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003171 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003172 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003173 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003174 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003175 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003176 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003177 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003179 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003180 )
3181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003182 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003183 _res = a;
3184 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003185 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003187 return NULL;
3188 }
3189 goto done;
3190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003191 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003192 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003194 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003195 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003197 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003198 return NULL;
3199 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003200 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003201 asdl_seq* import_from_as_names_var;
3202 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003203 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003204 &&
3205 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003206 )
3207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003208 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003209 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003210 goto done;
3211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003213 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003215 }
3216 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003219 return NULL;
3220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003221 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003222 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003223 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003224 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003225 )
3226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003227 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003228 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003232 return NULL;
3233 }
3234 goto done;
3235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003237 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003239 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02003240 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo275d7e12020-05-21 22:04:54 +01003241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003242 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003243 return NULL;
3244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003245 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003246 void *invalid_import_from_targets_var;
3247 if (
3248 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3249 )
3250 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003251 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003252 _res = invalid_import_from_targets_var;
3253 goto done;
3254 }
3255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003256 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003259 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003260 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003262 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003263}
3264
3265// import_from_as_names: ','.import_from_as_name+
3266static asdl_seq*
3267import_from_as_names_rule(Parser *p)
3268{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003269 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003272 return NULL;
3273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003274 asdl_seq* _res = NULL;
3275 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003276 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003278 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003279 return NULL;
3280 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003281 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003282 asdl_seq * a;
3283 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003284 (a = _gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003285 )
3286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003287 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003288 _res = a;
3289 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003292 return NULL;
3293 }
3294 goto done;
3295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003297 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003300 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003303 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003304}
3305
3306// import_from_as_name: NAME ['as' NAME]
3307static alias_ty
3308import_from_as_name_rule(Parser *p)
3309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003310 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003313 return NULL;
3314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003315 alias_ty _res = NULL;
3316 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003317 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003320 return NULL;
3321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003322 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003323 expr_ty a;
3324 void *b;
3325 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003326 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003327 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003328 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003329 )
3330 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003331 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003332 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3333 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003334 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003336 return NULL;
3337 }
3338 goto done;
3339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003340 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003341 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003344 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003345 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003346 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003347 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003348}
3349
3350// dotted_as_names: ','.dotted_as_name+
3351static asdl_seq*
3352dotted_as_names_rule(Parser *p)
3353{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003354 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003355 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003357 return NULL;
3358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003359 asdl_seq* _res = NULL;
3360 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003361 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003364 return NULL;
3365 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003366 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003367 asdl_seq * a;
3368 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003369 (a = _gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003370 )
3371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003372 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003373 _res = a;
3374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003377 return NULL;
3378 }
3379 goto done;
3380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003382 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003385 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003386 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003387 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003388 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003389}
3390
3391// dotted_as_name: dotted_name ['as' NAME]
3392static alias_ty
3393dotted_as_name_rule(Parser *p)
3394{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003395 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003396 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003398 return NULL;
3399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003400 alias_ty _res = NULL;
3401 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003402 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003405 return NULL;
3406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003407 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003408 expr_ty a;
3409 void *b;
3410 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003411 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003412 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003413 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003414 )
3415 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003416 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003417 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3418 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003421 return NULL;
3422 }
3423 goto done;
3424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003426 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003429 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003430 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003431 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003432 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003433}
3434
3435// Left-recursive
3436// dotted_name: dotted_name '.' NAME | NAME
3437static expr_ty dotted_name_raw(Parser *);
3438static expr_ty
3439dotted_name_rule(Parser *p)
3440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003441 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003442 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003443 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3444 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003445 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003447 int _mark = p->mark;
3448 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003449 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003450 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003451 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003452 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003453 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003455 p->mark = _mark;
3456 void *_raw = dotted_name_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02003457 if (p->error_indicator)
3458 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003459 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003460 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003461 _resmark = p->mark;
3462 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003464 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003465 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003466 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003467}
3468static expr_ty
3469dotted_name_raw(Parser *p)
3470{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003471 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003474 return NULL;
3475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003476 expr_ty _res = NULL;
3477 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003478 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003480 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003481 return NULL;
3482 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003483 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 +01003484 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003485 expr_ty a;
3486 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003487 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003488 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003489 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003490 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003491 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003492 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003493 )
3494 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003495 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 +01003496 _res = _PyPegen_join_names_with_dot ( p , a , b );
3497 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003498 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003499 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003500 return NULL;
3501 }
3502 goto done;
3503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003504 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003505 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003507 }
3508 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003510 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003511 return NULL;
3512 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003513 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003514 expr_ty name_var;
3515 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003516 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003517 )
3518 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003519 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003520 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003521 goto done;
3522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003523 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003524 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003527 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003528 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003529 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003530 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003531}
3532
3533// if_stmt:
3534// | 'if' named_expression ':' block elif_stmt
3535// | 'if' named_expression ':' block else_block?
3536static stmt_ty
3537if_stmt_rule(Parser *p)
3538{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003539 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003540 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003541 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003542 return NULL;
3543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003544 stmt_ty _res = NULL;
3545 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003546 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3547 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003549 return NULL;
3550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003551 int _start_lineno = p->tokens[_mark]->lineno;
3552 UNUSED(_start_lineno); // Only used by EXTRA macro
3553 int _start_col_offset = p->tokens[_mark]->col_offset;
3554 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003555 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003556 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003557 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003558 return NULL;
3559 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003560 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 +01003561 Token * _keyword;
3562 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003563 expr_ty a;
3564 asdl_seq* b;
3565 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003566 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003567 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003568 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003569 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003570 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003571 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003573 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003575 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003576 )
3577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003578 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 +01003579 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3580 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003581 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003582 return NULL;
3583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003584 int _end_lineno = _token->end_lineno;
3585 UNUSED(_end_lineno); // Only used by EXTRA macro
3586 int _end_col_offset = _token->end_col_offset;
3587 UNUSED(_end_col_offset); // Only used by EXTRA macro
3588 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3589 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003590 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003592 return NULL;
3593 }
3594 goto done;
3595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003597 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003599 }
3600 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003603 return NULL;
3604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003605 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 +01003606 Token * _keyword;
3607 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003608 expr_ty a;
3609 asdl_seq* b;
3610 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003611 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003612 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003614 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003615 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003616 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003618 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003620 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003621 )
3622 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003623 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 +01003624 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3625 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003626 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003627 return NULL;
3628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003629 int _end_lineno = _token->end_lineno;
3630 UNUSED(_end_lineno); // Only used by EXTRA macro
3631 int _end_col_offset = _token->end_col_offset;
3632 UNUSED(_end_col_offset); // Only used by EXTRA macro
3633 _res = _Py_If ( a , b , c , EXTRA );
3634 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003637 return NULL;
3638 }
3639 goto done;
3640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003641 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003642 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003645 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003646 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003647 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003648 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003649}
3650
3651// elif_stmt:
3652// | 'elif' named_expression ':' block elif_stmt
3653// | 'elif' named_expression ':' block else_block?
3654static stmt_ty
3655elif_stmt_rule(Parser *p)
3656{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003657 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003659 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003660 return NULL;
3661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003662 stmt_ty _res = NULL;
3663 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003664 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3665 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003667 return NULL;
3668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003669 int _start_lineno = p->tokens[_mark]->lineno;
3670 UNUSED(_start_lineno); // Only used by EXTRA macro
3671 int _start_col_offset = p->tokens[_mark]->col_offset;
3672 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003673 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003676 return NULL;
3677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003678 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 +01003679 Token * _keyword;
3680 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003681 expr_ty a;
3682 asdl_seq* b;
3683 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003684 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003685 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003686 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003687 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003688 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003689 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003691 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003692 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003693 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003694 )
3695 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003696 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 +01003697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3698 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003699 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003700 return NULL;
3701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003702 int _end_lineno = _token->end_lineno;
3703 UNUSED(_end_lineno); // Only used by EXTRA macro
3704 int _end_col_offset = _token->end_col_offset;
3705 UNUSED(_end_col_offset); // Only used by EXTRA macro
3706 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3707 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003708 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003710 return NULL;
3711 }
3712 goto done;
3713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003714 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003715 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003717 }
3718 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003719 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003720 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003721 return NULL;
3722 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003723 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 +01003724 Token * _keyword;
3725 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003726 expr_ty a;
3727 asdl_seq* b;
3728 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003729 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003730 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003731 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003732 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003733 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003734 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003736 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003738 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003739 )
3740 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003741 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 +01003742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3743 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003745 return NULL;
3746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003747 int _end_lineno = _token->end_lineno;
3748 UNUSED(_end_lineno); // Only used by EXTRA macro
3749 int _end_col_offset = _token->end_col_offset;
3750 UNUSED(_end_col_offset); // Only used by EXTRA macro
3751 _res = _Py_If ( a , b , c , EXTRA );
3752 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003753 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003754 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003755 return NULL;
3756 }
3757 goto done;
3758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003759 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003760 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003763 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003764 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003765 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003766 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003767}
3768
3769// else_block: 'else' ':' block
3770static asdl_seq*
3771else_block_rule(Parser *p)
3772{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003773 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003776 return NULL;
3777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003778 asdl_seq* _res = NULL;
3779 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003780 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003781 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003782 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003783 return NULL;
3784 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003785 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003786 Token * _keyword;
3787 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003788 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003789 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003790 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003791 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003792 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003793 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003794 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003795 )
3796 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003797 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 +01003798 _res = b;
3799 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003800 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003802 return NULL;
3803 }
3804 goto done;
3805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003806 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003807 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003810 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003811 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003812 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003813 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003814}
3815
3816// while_stmt: 'while' named_expression ':' block else_block?
3817static stmt_ty
3818while_stmt_rule(Parser *p)
3819{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003820 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003823 return NULL;
3824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003825 stmt_ty _res = NULL;
3826 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003827 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3828 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003829 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003830 return NULL;
3831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003832 int _start_lineno = p->tokens[_mark]->lineno;
3833 UNUSED(_start_lineno); // Only used by EXTRA macro
3834 int _start_col_offset = p->tokens[_mark]->col_offset;
3835 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003836 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003838 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003839 return NULL;
3840 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003841 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 +01003842 Token * _keyword;
3843 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003844 expr_ty a;
3845 asdl_seq* b;
3846 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003847 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003848 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003849 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003850 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003851 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003852 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003854 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003856 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003857 )
3858 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003859 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 +01003860 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3861 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003863 return NULL;
3864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003865 int _end_lineno = _token->end_lineno;
3866 UNUSED(_end_lineno); // Only used by EXTRA macro
3867 int _end_col_offset = _token->end_col_offset;
3868 UNUSED(_end_col_offset); // Only used by EXTRA macro
3869 _res = _Py_While ( a , b , c , EXTRA );
3870 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003871 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003872 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003873 return NULL;
3874 }
3875 goto done;
3876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003877 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003878 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003881 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003882 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003883 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003884 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003885}
3886
Guido van Rossumc001c092020-04-30 12:12:19 -07003887// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003888// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3889// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3890// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003891static stmt_ty
3892for_stmt_rule(Parser *p)
3893{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003894 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003895 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003897 return NULL;
3898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003899 stmt_ty _res = NULL;
3900 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003901 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3902 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003904 return NULL;
3905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003906 int _start_lineno = p->tokens[_mark]->lineno;
3907 UNUSED(_start_lineno); // Only used by EXTRA macro
3908 int _start_col_offset = p->tokens[_mark]->col_offset;
3909 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003910 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003912 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003913 return NULL;
3914 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003915 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?"));
3916 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003917 Token * _keyword;
3918 Token * _keyword_1;
3919 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003920 asdl_seq* b;
3921 void *el;
3922 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003923 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003924 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003925 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003926 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003927 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003928 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003929 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003930 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003931 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003932 (_cut_var = 1)
3933 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003934 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003935 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003936 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003938 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003940 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003941 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003942 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003943 )
3944 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003945 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 +01003946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3947 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003948 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003949 return NULL;
3950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003951 int _end_lineno = _token->end_lineno;
3952 UNUSED(_end_lineno); // Only used by EXTRA macro
3953 int _end_col_offset = _token->end_col_offset;
3954 UNUSED(_end_col_offset); // Only used by EXTRA macro
3955 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3956 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003957 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003958 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003959 return NULL;
3960 }
3961 goto done;
3962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003963 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003964 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3966 if (_cut_var) {
3967 D(p->level--);
3968 return NULL;
3969 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003970 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003971 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003973 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003974 return NULL;
3975 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003976 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?"));
3977 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003978 Token * _keyword;
3979 Token * _keyword_1;
3980 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003981 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003982 asdl_seq* b;
3983 void *el;
3984 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003985 expr_ty t;
3986 void *tc;
3987 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003988 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003989 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003990 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003991 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003992 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003993 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003994 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003995 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003996 (_cut_var = 1)
3997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003998 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003999 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004000 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004002 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004004 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004005 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004006 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004007 )
4008 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004009 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 +01004010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4011 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004013 return NULL;
4014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004015 int _end_lineno = _token->end_lineno;
4016 UNUSED(_end_lineno); // Only used by EXTRA macro
4017 int _end_col_offset = _token->end_col_offset;
4018 UNUSED(_end_col_offset); // Only used by EXTRA macro
4019 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4020 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004023 return NULL;
4024 }
4025 goto done;
4026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004028 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4030 if (_cut_var) {
4031 D(p->level--);
4032 return NULL;
4033 }
4034 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02004035 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004036 if (p->error_indicator) {
4037 D(p->level--);
4038 return NULL;
4039 }
4040 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4041 void *invalid_for_target_var;
4042 if (
4043 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4044 )
4045 {
4046 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4047 _res = invalid_for_target_var;
4048 goto done;
4049 }
4050 p->mark = _mark;
4051 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004054 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004055 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004056 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004057 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004058}
4059
4060// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004061// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004062// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004063// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004064// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004065static stmt_ty
4066with_stmt_rule(Parser *p)
4067{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004068 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004070 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004071 return NULL;
4072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004073 stmt_ty _res = NULL;
4074 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004075 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4076 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004077 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004078 return NULL;
4079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004080 int _start_lineno = p->tokens[_mark]->lineno;
4081 UNUSED(_start_lineno); // Only used by EXTRA macro
4082 int _start_col_offset = p->tokens[_mark]->col_offset;
4083 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004084 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004085 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004086 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004087 return NULL;
4088 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004089 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 +01004090 Token * _keyword;
4091 Token * _literal;
4092 Token * _literal_1;
4093 Token * _literal_2;
4094 void *_opt_var;
4095 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004096 asdl_seq * a;
4097 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004098 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004099 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004100 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004101 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004102 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004103 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004104 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004105 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004106 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004107 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004108 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004109 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004110 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004111 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004112 )
4113 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004114 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 +01004115 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4116 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004118 return NULL;
4119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004120 int _end_lineno = _token->end_lineno;
4121 UNUSED(_end_lineno); // Only used by EXTRA macro
4122 int _end_col_offset = _token->end_col_offset;
4123 UNUSED(_end_col_offset); // Only used by EXTRA macro
4124 _res = _Py_With ( a , b , NULL , EXTRA );
4125 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004126 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004128 return NULL;
4129 }
4130 goto done;
4131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004132 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004133 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004135 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004136 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004138 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004139 return NULL;
4140 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004141 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 +01004142 Token * _keyword;
4143 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004144 asdl_seq * a;
4145 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004146 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004147 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004148 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004149 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004150 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004151 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004152 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004153 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004154 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004155 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004156 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004157 )
4158 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004159 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 +01004160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4161 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004163 return NULL;
4164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004165 int _end_lineno = _token->end_lineno;
4166 UNUSED(_end_lineno); // Only used by EXTRA macro
4167 int _end_col_offset = _token->end_col_offset;
4168 UNUSED(_end_col_offset); // Only used by EXTRA macro
4169 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4170 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004171 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004172 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004173 return NULL;
4174 }
4175 goto done;
4176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004177 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004178 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004180 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004181 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004184 return NULL;
4185 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004186 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 +01004187 Token * _keyword;
4188 Token * _literal;
4189 Token * _literal_1;
4190 Token * _literal_2;
4191 void *_opt_var;
4192 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004193 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004194 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004195 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004196 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004197 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004199 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004200 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004201 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004202 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004203 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004204 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004205 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004207 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004208 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004209 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004210 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004211 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004212 )
4213 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004214 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 +01004215 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4216 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004217 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004218 return NULL;
4219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004220 int _end_lineno = _token->end_lineno;
4221 UNUSED(_end_lineno); // Only used by EXTRA macro
4222 int _end_col_offset = _token->end_col_offset;
4223 UNUSED(_end_col_offset); // Only used by EXTRA macro
4224 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4225 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004226 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004227 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004228 return NULL;
4229 }
4230 goto done;
4231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004232 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004233 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004235 }
4236 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004237 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004238 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004239 return NULL;
4240 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004241 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 +01004242 Token * _keyword;
4243 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004244 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004245 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004246 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004247 void *tc;
4248 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004249 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004250 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004251 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004252 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004253 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004254 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004255 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004257 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004258 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004259 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004260 )
4261 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004262 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 +01004263 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4264 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004265 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004266 return NULL;
4267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004268 int _end_lineno = _token->end_lineno;
4269 UNUSED(_end_lineno); // Only used by EXTRA macro
4270 int _end_col_offset = _token->end_col_offset;
4271 UNUSED(_end_col_offset); // Only used by EXTRA macro
4272 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4273 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004276 return NULL;
4277 }
4278 goto done;
4279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004280 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004281 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004284 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004285 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004287 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004288}
4289
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004290// with_item:
4291// | expression 'as' star_target &(',' | ')' | ':')
4292// | invalid_with_item
4293// | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004294static withitem_ty
4295with_item_rule(Parser *p)
4296{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004297 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004300 return NULL;
4301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004302 withitem_ty _res = NULL;
4303 int _mark = p->mark;
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004304 { // expression 'as' star_target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004306 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004307 return NULL;
4308 }
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004309 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 +03004310 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004311 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004312 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004313 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004314 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004315 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004316 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4317 &&
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004318 (t = star_target_rule(p)) // star_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004319 &&
4320 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004321 )
4322 {
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004323 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 +03004324 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004325 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004326 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004327 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004328 return NULL;
4329 }
4330 goto done;
4331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004332 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004333 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya42157b92020-10-09 13:31:07 +03004334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004335 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02004336 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004337 if (p->error_indicator) {
4338 D(p->level--);
4339 return NULL;
4340 }
4341 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4342 void *invalid_with_item_var;
4343 if (
4344 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4345 )
4346 {
4347 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4348 _res = invalid_with_item_var;
4349 goto done;
4350 }
4351 p->mark = _mark;
4352 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4354 }
4355 { // expression
4356 if (p->error_indicator) {
4357 D(p->level--);
4358 return NULL;
4359 }
4360 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4361 expr_ty e;
4362 if (
4363 (e = expression_rule(p)) // expression
4364 )
4365 {
4366 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4367 _res = _Py_withitem ( e , NULL , p -> arena );
4368 if (_res == NULL && PyErr_Occurred()) {
4369 p->error_indicator = 1;
4370 D(p->level--);
4371 return NULL;
4372 }
4373 goto done;
4374 }
4375 p->mark = _mark;
4376 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004379 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004380 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004381 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004382 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004383}
4384
4385// try_stmt:
4386// | 'try' ':' block finally_block
4387// | 'try' ':' block except_block+ else_block? finally_block?
4388static stmt_ty
4389try_stmt_rule(Parser *p)
4390{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004391 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004394 return NULL;
4395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004396 stmt_ty _res = NULL;
4397 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004398 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4399 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004401 return NULL;
4402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004403 int _start_lineno = p->tokens[_mark]->lineno;
4404 UNUSED(_start_lineno); // Only used by EXTRA macro
4405 int _start_col_offset = p->tokens[_mark]->col_offset;
4406 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004407 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004410 return NULL;
4411 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004412 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 +01004413 Token * _keyword;
4414 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004415 asdl_seq* b;
4416 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004417 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004418 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004419 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004420 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004422 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004423 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004424 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004425 )
4426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004427 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 +01004428 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4429 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004431 return NULL;
4432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004433 int _end_lineno = _token->end_lineno;
4434 UNUSED(_end_lineno); // Only used by EXTRA macro
4435 int _end_col_offset = _token->end_col_offset;
4436 UNUSED(_end_col_offset); // Only used by EXTRA macro
4437 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4438 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004441 return NULL;
4442 }
4443 goto done;
4444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004446 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004448 }
4449 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004452 return NULL;
4453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004454 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 +01004455 Token * _keyword;
4456 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004457 asdl_seq* b;
4458 void *el;
4459 asdl_seq * ex;
4460 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004461 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004462 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004463 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004464 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004465 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004466 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004467 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004468 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004469 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004470 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004471 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004472 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004473 )
4474 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004475 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 +01004476 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4477 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004478 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004479 return NULL;
4480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004481 int _end_lineno = _token->end_lineno;
4482 UNUSED(_end_lineno); // Only used by EXTRA macro
4483 int _end_col_offset = _token->end_col_offset;
4484 UNUSED(_end_col_offset); // Only used by EXTRA macro
4485 _res = _Py_Try ( b , ex , el , f , EXTRA );
4486 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004487 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004488 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004489 return NULL;
4490 }
4491 goto done;
4492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004493 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004494 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004497 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004498 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004499 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004500 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004501}
4502
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004503// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004504static excepthandler_ty
4505except_block_rule(Parser *p)
4506{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004507 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004510 return NULL;
4511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004512 excepthandler_ty _res = NULL;
4513 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004516 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004517 return NULL;
4518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004519 int _start_lineno = p->tokens[_mark]->lineno;
4520 UNUSED(_start_lineno); // Only used by EXTRA macro
4521 int _start_col_offset = p->tokens[_mark]->col_offset;
4522 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004523 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004525 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004526 return NULL;
4527 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004528 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 +01004529 Token * _keyword;
4530 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004531 asdl_seq* b;
4532 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004533 void *t;
4534 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004535 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004536 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004537 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004538 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004539 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004540 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004541 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004542 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004543 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004544 )
4545 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004546 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 +01004547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4548 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004549 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004550 return NULL;
4551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004552 int _end_lineno = _token->end_lineno;
4553 UNUSED(_end_lineno); // Only used by EXTRA macro
4554 int _end_col_offset = _token->end_col_offset;
4555 UNUSED(_end_col_offset); // Only used by EXTRA macro
4556 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4557 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004558 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004560 return NULL;
4561 }
4562 goto done;
4563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004565 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004567 }
4568 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004569 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004570 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004571 return NULL;
4572 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004573 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004574 Token * _keyword;
4575 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004576 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004577 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004578 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004579 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004580 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004581 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004582 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004583 )
4584 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004585 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 +01004586 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4587 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004588 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004589 return NULL;
4590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004591 int _end_lineno = _token->end_lineno;
4592 UNUSED(_end_lineno); // Only used by EXTRA macro
4593 int _end_col_offset = _token->end_col_offset;
4594 UNUSED(_end_col_offset); // Only used by EXTRA macro
4595 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4596 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004597 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004599 return NULL;
4600 }
4601 goto done;
4602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004603 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004604 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004607 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004608 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004609 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004610 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004611}
4612
4613// finally_block: 'finally' ':' block
4614static asdl_seq*
4615finally_block_rule(Parser *p)
4616{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004617 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004619 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004620 return NULL;
4621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004622 asdl_seq* _res = NULL;
4623 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004624 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004627 return NULL;
4628 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004629 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004630 Token * _keyword;
4631 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004633 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004634 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004635 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004636 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004637 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004638 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004639 )
4640 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004641 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 +01004642 _res = a;
4643 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004644 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004645 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004646 return NULL;
4647 }
4648 goto done;
4649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004650 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004651 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004654 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004655 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004656 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004657 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004658}
4659
4660// return_stmt: 'return' star_expressions?
4661static stmt_ty
4662return_stmt_rule(Parser *p)
4663{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004664 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004667 return NULL;
4668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004669 stmt_ty _res = NULL;
4670 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004671 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4672 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004674 return NULL;
4675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004676 int _start_lineno = p->tokens[_mark]->lineno;
4677 UNUSED(_start_lineno); // Only used by EXTRA macro
4678 int _start_col_offset = p->tokens[_mark]->col_offset;
4679 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004680 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004681 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004682 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004683 return NULL;
4684 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004685 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 +01004686 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004687 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004688 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004689 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004690 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004691 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004692 )
4693 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004694 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 +01004695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4696 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004698 return NULL;
4699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004700 int _end_lineno = _token->end_lineno;
4701 UNUSED(_end_lineno); // Only used by EXTRA macro
4702 int _end_col_offset = _token->end_col_offset;
4703 UNUSED(_end_col_offset); // Only used by EXTRA macro
4704 _res = _Py_Return ( a , EXTRA );
4705 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004706 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004708 return NULL;
4709 }
4710 goto done;
4711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004712 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004713 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004716 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004717 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004718 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004719 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004720}
4721
4722// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4723static stmt_ty
4724raise_stmt_rule(Parser *p)
4725{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004726 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004728 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004729 return NULL;
4730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004731 stmt_ty _res = NULL;
4732 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004733 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4734 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004736 return NULL;
4737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004738 int _start_lineno = p->tokens[_mark]->lineno;
4739 UNUSED(_start_lineno); // Only used by EXTRA macro
4740 int _start_col_offset = p->tokens[_mark]->col_offset;
4741 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004742 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004744 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004745 return NULL;
4746 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004747 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 +01004748 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004749 expr_ty a;
4750 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004751 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004752 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004753 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004754 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004755 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004756 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004757 )
4758 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004759 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 +01004760 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4761 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004763 return NULL;
4764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004765 int _end_lineno = _token->end_lineno;
4766 UNUSED(_end_lineno); // Only used by EXTRA macro
4767 int _end_col_offset = _token->end_col_offset;
4768 UNUSED(_end_col_offset); // Only used by EXTRA macro
4769 _res = _Py_Raise ( a , b , EXTRA );
4770 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004771 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004773 return NULL;
4774 }
4775 goto done;
4776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004777 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004778 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004780 }
4781 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004783 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004784 return NULL;
4785 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004786 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004787 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004788 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004789 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004790 )
4791 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004792 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004793 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4794 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004796 return NULL;
4797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004798 int _end_lineno = _token->end_lineno;
4799 UNUSED(_end_lineno); // Only used by EXTRA macro
4800 int _end_col_offset = _token->end_col_offset;
4801 UNUSED(_end_col_offset); // Only used by EXTRA macro
4802 _res = _Py_Raise ( NULL , NULL , EXTRA );
4803 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004804 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004805 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004806 return NULL;
4807 }
4808 goto done;
4809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004810 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004811 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004814 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004815 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004816 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004817 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004818}
4819
4820// function_def: decorators function_def_raw | function_def_raw
4821static stmt_ty
4822function_def_rule(Parser *p)
4823{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004824 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004825 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004827 return NULL;
4828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004829 stmt_ty _res = NULL;
4830 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004831 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004833 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004834 return NULL;
4835 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004836 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 +01004837 asdl_seq* d;
4838 stmt_ty f;
4839 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004840 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004841 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004842 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004843 )
4844 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004845 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 +01004846 _res = _PyPegen_function_def_decorators ( p , d , f );
4847 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004848 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004850 return NULL;
4851 }
4852 goto done;
4853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004854 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004855 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004857 }
4858 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004859 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004860 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004861 return NULL;
4862 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004863 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 +01004864 stmt_ty function_def_raw_var;
4865 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004866 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004867 )
4868 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004869 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 +01004870 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004871 goto done;
4872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004873 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004874 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004877 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004878 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004880 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004881}
4882
Guido van Rossumc001c092020-04-30 12:12:19 -07004883// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004884// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4885// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004886static stmt_ty
4887function_def_raw_rule(Parser *p)
4888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004892 return NULL;
4893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004894 stmt_ty _res = NULL;
4895 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004896 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4897 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004899 return NULL;
4900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004901 int _start_lineno = p->tokens[_mark]->lineno;
4902 UNUSED(_start_lineno); // Only used by EXTRA macro
4903 int _start_col_offset = p->tokens[_mark]->col_offset;
4904 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004905 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004907 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004908 return NULL;
4909 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004910 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 +01004911 Token * _keyword;
4912 Token * _literal;
4913 Token * _literal_1;
4914 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004915 void *a;
4916 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004917 expr_ty n;
4918 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004919 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004920 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004921 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004922 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004923 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004924 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004925 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004926 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004927 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004928 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004929 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004930 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004931 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004932 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004933 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004934 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004935 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004936 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004937 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004938 )
4939 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004940 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 +01004941 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4942 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004943 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004944 return NULL;
4945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004946 int _end_lineno = _token->end_lineno;
4947 UNUSED(_end_lineno); // Only used by EXTRA macro
4948 int _end_col_offset = _token->end_col_offset;
4949 UNUSED(_end_col_offset); // Only used by EXTRA macro
4950 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4951 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004952 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004953 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004954 return NULL;
4955 }
4956 goto done;
4957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004958 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004959 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004961 }
4962 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004963 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004964 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004965 return NULL;
4966 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004967 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 +01004968 Token * _keyword;
4969 Token * _literal;
4970 Token * _literal_1;
4971 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004972 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004973 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004974 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004975 expr_ty n;
4976 void *params;
4977 void *tc;
4978 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004979 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004980 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004981 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004982 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004983 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004984 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004985 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004986 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004987 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004988 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004989 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004990 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004991 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004992 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004993 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004994 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004995 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004996 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004997 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004998 )
4999 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005000 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 +01005001 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5002 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005003 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005004 return NULL;
5005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005006 int _end_lineno = _token->end_lineno;
5007 UNUSED(_end_lineno); // Only used by EXTRA macro
5008 int _end_col_offset = _token->end_col_offset;
5009 UNUSED(_end_col_offset); // Only used by EXTRA macro
5010 _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 ) );
5011 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005012 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005013 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005014 return NULL;
5015 }
5016 goto done;
5017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005018 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005019 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005022 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005023 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005024 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005025 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005026}
5027
Guido van Rossumc001c092020-04-30 12:12:19 -07005028// func_type_comment:
5029// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5030// | invalid_double_type_comments
5031// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005032static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005033func_type_comment_rule(Parser *p)
5034{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005035 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005037 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005038 return NULL;
5039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005040 Token* _res = NULL;
5041 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005042 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005045 return NULL;
5046 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005047 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 +01005048 Token * newline_var;
5049 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005050 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005051 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005052 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005053 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005054 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005055 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005056 )
5057 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005058 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 +01005059 _res = t;
5060 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005061 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005062 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005063 return NULL;
5064 }
5065 goto done;
5066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005067 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005068 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005070 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005071 if (p->call_invalid_rules) { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005073 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005074 return NULL;
5075 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005076 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 -07005077 void *invalid_double_type_comments_var;
5078 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005079 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005080 )
5081 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005082 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 +01005083 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005084 goto done;
5085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005086 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005087 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005089 }
5090 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005093 return NULL;
5094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005095 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 +01005096 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005097 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005098 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005099 )
5100 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005101 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 +01005102 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005103 goto done;
5104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005105 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005106 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005109 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005110 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005111 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005112 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005113}
5114
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005115// params: invalid_parameters | parameters
5116static arguments_ty
5117params_rule(Parser *p)
5118{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005119 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005120 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005122 return NULL;
5123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005124 arguments_ty _res = NULL;
5125 int _mark = p->mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005126 if (p->call_invalid_rules) { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005127 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005128 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005129 return NULL;
5130 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005131 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005132 void *invalid_parameters_var;
5133 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005134 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005135 )
5136 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005137 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005138 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005139 goto done;
5140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005141 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005142 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005144 }
5145 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005146 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005147 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005148 return NULL;
5149 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005150 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005151 arguments_ty parameters_var;
5152 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005153 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005154 )
5155 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005156 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005157 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005158 goto done;
5159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005160 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005161 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005164 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005165 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005166 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005167 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005168}
5169
5170// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005171// | slash_no_default param_no_default* param_with_default* star_etc?
5172// | slash_with_default param_with_default* star_etc?
5173// | param_no_default+ param_with_default* star_etc?
5174// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005175// | star_etc
5176static arguments_ty
5177parameters_rule(Parser *p)
5178{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005179 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005181 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005182 return NULL;
5183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005184 arguments_ty _res = NULL;
5185 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005186 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005188 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005189 return NULL;
5190 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005191 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 +01005192 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005193 asdl_seq * b;
5194 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005195 void *d;
5196 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005197 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005198 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005199 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005200 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005201 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005202 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005203 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 )
5205 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005206 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 +01005207 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5208 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005209 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005211 return NULL;
5212 }
5213 goto done;
5214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005215 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005216 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5217 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 +01005218 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005219 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005221 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005222 return NULL;
5223 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005224 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 +01005225 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005226 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005227 void *c;
5228 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005229 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005230 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005231 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005232 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005233 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005234 )
5235 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005236 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 +01005237 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5238 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005239 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005240 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005241 return NULL;
5242 }
5243 goto done;
5244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005245 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005246 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005248 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005249 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005250 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005251 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005252 return NULL;
5253 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005254 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 -07005255 asdl_seq * a;
5256 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005257 void *c;
5258 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005259 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005260 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005261 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005262 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005263 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005264 )
5265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005266 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 +01005267 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5268 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005269 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005270 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005271 return NULL;
5272 }
5273 goto done;
5274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005275 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005276 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005278 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005279 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005281 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005282 return NULL;
5283 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005284 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 -07005285 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005286 void *b;
5287 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005288 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005289 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005290 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005291 )
5292 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005293 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 +01005294 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5295 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005296 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005298 return NULL;
5299 }
5300 goto done;
5301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005302 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005303 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005305 }
5306 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005309 return NULL;
5310 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005311 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005312 StarEtc* a;
5313 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005314 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005315 )
5316 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005317 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005318 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5319 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005320 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005321 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005322 return NULL;
5323 }
5324 goto done;
5325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005326 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005327 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005329 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005330 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005331 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005332 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005333 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005334}
5335
Guido van Rossumc001c092020-04-30 12:12:19 -07005336// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005337static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005338slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005339{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005340 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005342 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005343 return NULL;
5344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005345 asdl_seq* _res = NULL;
5346 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005347 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005348 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005349 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005350 return NULL;
5351 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005352 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 +01005353 Token * _literal;
5354 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005355 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005356 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005357 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005358 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005359 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005360 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005361 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005362 )
5363 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005364 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 +01005365 _res = a;
5366 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005367 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005368 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005369 return NULL;
5370 }
5371 goto done;
5372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005373 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005374 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005376 }
5377 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005379 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005380 return NULL;
5381 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005382 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 +01005383 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005384 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005385 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005386 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005387 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005388 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005389 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005390 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005391 )
5392 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005393 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 +01005394 _res = a;
5395 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005396 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005398 return NULL;
5399 }
5400 goto done;
5401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005402 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005403 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005406 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005407 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005408 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005409 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005410}
5411
Guido van Rossumc001c092020-04-30 12:12:19 -07005412// slash_with_default:
5413// | param_no_default* param_with_default+ '/' ','
5414// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005415static SlashWithDefault*
5416slash_with_default_rule(Parser *p)
5417{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005418 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005419 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005421 return NULL;
5422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005423 SlashWithDefault* _res = NULL;
5424 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005425 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005427 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005428 return NULL;
5429 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005430 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 +01005431 Token * _literal;
5432 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005433 asdl_seq * a;
5434 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005435 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005436 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005437 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005438 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005439 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005440 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005441 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005442 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005443 )
5444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005445 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 +01005446 _res = _PyPegen_slash_with_default ( p , a , b );
5447 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005448 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005449 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005450 return NULL;
5451 }
5452 goto done;
5453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005454 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005455 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005457 }
5458 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005461 return NULL;
5462 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005463 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 +01005464 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005465 asdl_seq * a;
5466 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005467 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005468 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005469 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005470 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005471 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005472 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005473 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005474 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005475 )
5476 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005477 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 +01005478 _res = _PyPegen_slash_with_default ( p , a , b );
5479 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005480 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005482 return NULL;
5483 }
5484 goto done;
5485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005486 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005487 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005490 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005491 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005492 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005493 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005494}
5495
5496// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005497// | '*' param_no_default param_maybe_default* kwds?
5498// | '*' ',' param_maybe_default+ kwds?
5499// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005500// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005501static StarEtc*
5502star_etc_rule(Parser *p)
5503{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005504 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005506 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005507 return NULL;
5508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005509 StarEtc* _res = NULL;
5510 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005511 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005513 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005514 return NULL;
5515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005516 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 +01005517 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005518 arg_ty a;
5519 asdl_seq * b;
5520 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005521 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005522 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005523 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005524 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005525 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005526 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005527 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005528 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005529 )
5530 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005531 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 +01005532 _res = _PyPegen_star_etc ( p , a , b , c );
5533 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005534 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005535 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005536 return NULL;
5537 }
5538 goto done;
5539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005540 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005541 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005543 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005544 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005545 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005546 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005547 return NULL;
5548 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005549 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 +01005550 Token * _literal;
5551 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005552 asdl_seq * b;
5553 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005554 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005555 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005556 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005557 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005558 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005559 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005560 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005561 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005562 )
5563 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005564 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 +01005565 _res = _PyPegen_star_etc ( p , NULL , b , c );
5566 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005567 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005569 return NULL;
5570 }
5571 goto done;
5572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005573 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005574 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005576 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005577 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005579 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005580 return NULL;
5581 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005582 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005583 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005584 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005585 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005586 )
5587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005588 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005589 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5590 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005591 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005593 return NULL;
5594 }
5595 goto done;
5596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005597 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005598 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005600 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02005601 if (p->call_invalid_rules) { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005603 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005604 return NULL;
5605 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005606 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 +03005607 void *invalid_star_etc_var;
5608 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005609 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005610 )
5611 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005612 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 +01005613 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005614 goto done;
5615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005616 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005617 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005620 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005621 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005622 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005623 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005624}
5625
Guido van Rossumc001c092020-04-30 12:12:19 -07005626// kwds: '**' param_no_default
5627static arg_ty
5628kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005629{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005630 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005633 return NULL;
5634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005635 arg_ty _res = NULL;
5636 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005637 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005639 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005640 return NULL;
5641 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005642 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005643 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005644 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005645 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005646 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005647 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005648 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005649 )
5650 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005651 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 +01005652 _res = a;
5653 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005654 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005655 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005656 return NULL;
5657 }
5658 goto done;
5659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005660 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005661 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005664 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005665 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005666 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005667 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005668}
5669
5670// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5671static arg_ty
5672param_no_default_rule(Parser *p)
5673{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005674 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005676 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005677 return NULL;
5678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005679 arg_ty _res = NULL;
5680 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005681 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005683 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005684 return NULL;
5685 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005686 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 +01005687 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005688 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005689 void *tc;
5690 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005691 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005692 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005693 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005694 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005695 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005696 )
5697 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005698 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 +01005699 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5700 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005701 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005702 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005703 return NULL;
5704 }
5705 goto done;
5706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005707 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005708 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005710 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005711 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005713 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005714 return NULL;
5715 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005716 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 -07005717 arg_ty a;
5718 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005719 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005720 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005721 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005722 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005723 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005724 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005725 )
5726 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005727 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 +01005728 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5729 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005730 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005731 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005732 return NULL;
5733 }
5734 goto done;
5735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005736 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005737 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005740 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005741 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005742 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005743 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005744}
5745
Guido van Rossumc001c092020-04-30 12:12:19 -07005746// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005747static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005748param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005749{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005750 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005753 return NULL;
5754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005755 NameDefaultPair* _res = NULL;
5756 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005757 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005760 return NULL;
5761 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005762 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 +01005763 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005764 arg_ty a;
5765 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005766 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005767 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005768 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005769 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005770 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005771 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005772 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005773 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005774 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005775 )
5776 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005777 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 +01005778 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5779 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005780 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005781 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005782 return NULL;
5783 }
5784 goto done;
5785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005786 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005787 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005789 }
5790 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005793 return NULL;
5794 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005795 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 -07005796 arg_ty a;
5797 expr_ty c;
5798 void *tc;
5799 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005800 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005801 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005802 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005804 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005806 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005807 )
5808 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005809 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 +01005810 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5811 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005812 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005814 return NULL;
5815 }
5816 goto done;
5817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005818 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005819 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005822 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005823 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005824 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005825 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005826}
5827
Guido van Rossumc001c092020-04-30 12:12:19 -07005828// param_maybe_default:
5829// | param default? ',' TYPE_COMMENT?
5830// | param default? TYPE_COMMENT? &')'
5831static NameDefaultPair*
5832param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005833{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005834 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005836 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005837 return NULL;
5838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005839 NameDefaultPair* _res = NULL;
5840 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005841 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005843 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005844 return NULL;
5845 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005846 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 +01005847 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005848 arg_ty a;
5849 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005850 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005851 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005852 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005854 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005855 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005856 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005858 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005859 )
5860 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005861 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 +01005862 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5863 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005864 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005865 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005866 return NULL;
5867 }
5868 goto done;
5869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005870 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005871 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005873 }
5874 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005876 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005877 return NULL;
5878 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005879 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 -07005880 arg_ty a;
5881 void *c;
5882 void *tc;
5883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005884 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005885 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005886 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005887 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005888 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005890 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005891 )
5892 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005893 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 +01005894 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5895 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005896 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005898 return NULL;
5899 }
5900 goto done;
5901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005902 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005903 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005906 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005907 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005908 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005909 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005910}
5911
Guido van Rossumc001c092020-04-30 12:12:19 -07005912// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005913static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005914param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005915{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005916 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005917 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005919 return NULL;
5920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005921 arg_ty _res = NULL;
5922 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005923 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5924 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005925 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005926 return NULL;
5927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005928 int _start_lineno = p->tokens[_mark]->lineno;
5929 UNUSED(_start_lineno); // Only used by EXTRA macro
5930 int _start_col_offset = p->tokens[_mark]->col_offset;
5931 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005932 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005933 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005934 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005935 return NULL;
5936 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005937 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005938 expr_ty a;
5939 void *b;
5940 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005941 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005942 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005943 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005944 )
5945 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005946 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005947 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5948 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005949 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005950 return NULL;
5951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005952 int _end_lineno = _token->end_lineno;
5953 UNUSED(_end_lineno); // Only used by EXTRA macro
5954 int _end_col_offset = _token->end_col_offset;
5955 UNUSED(_end_col_offset); // Only used by EXTRA macro
5956 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5957 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005958 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005960 return NULL;
5961 }
5962 goto done;
5963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005964 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005965 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005968 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005969 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005970 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005971 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005972}
5973
Guido van Rossumc001c092020-04-30 12:12:19 -07005974// annotation: ':' expression
5975static expr_ty
5976annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005977{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005978 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005981 return NULL;
5982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005983 expr_ty _res = NULL;
5984 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005985 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005986 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005987 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005988 return NULL;
5989 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005990 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005991 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005992 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005993 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005994 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005996 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005997 )
5998 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005999 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006000 _res = a;
6001 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006002 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006003 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006004 return NULL;
6005 }
6006 goto done;
6007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006008 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006009 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006012 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006013 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006015 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006016}
6017
Guido van Rossumc001c092020-04-30 12:12:19 -07006018// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006019static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006020default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006021{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006022 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006025 return NULL;
6026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006027 expr_ty _res = NULL;
6028 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006029 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006031 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006032 return NULL;
6033 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006034 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006035 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006036 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006037 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006038 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006039 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006040 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006041 )
6042 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006043 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006044 _res = a;
6045 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006046 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006047 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006048 return NULL;
6049 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006050 goto done;
6051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006052 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006053 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006056 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006057 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006058 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006059 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006060}
6061
6062// decorators: (('@' named_expression NEWLINE))+
6063static asdl_seq*
6064decorators_rule(Parser *p)
6065{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006066 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006069 return NULL;
6070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006071 asdl_seq* _res = NULL;
6072 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006073 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006074 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006075 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006076 return NULL;
6077 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006078 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006079 asdl_seq * a;
6080 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006081 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006082 )
6083 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006084 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 +01006085 _res = a;
6086 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006087 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006088 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006089 return NULL;
6090 }
6091 goto done;
6092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006093 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006094 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006097 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006098 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006099 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006100 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006101}
6102
6103// class_def: decorators class_def_raw | class_def_raw
6104static stmt_ty
6105class_def_rule(Parser *p)
6106{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006107 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006108 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006109 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006110 return NULL;
6111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006112 stmt_ty _res = NULL;
6113 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006114 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006115 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006116 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006117 return NULL;
6118 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006119 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 +01006120 asdl_seq* a;
6121 stmt_ty b;
6122 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006123 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006124 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006125 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006126 )
6127 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006128 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 +01006129 _res = _PyPegen_class_def_decorators ( p , a , b );
6130 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006131 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006132 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006133 return NULL;
6134 }
6135 goto done;
6136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006137 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006138 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006140 }
6141 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006142 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006143 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006144 return NULL;
6145 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006146 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 +01006147 stmt_ty class_def_raw_var;
6148 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006149 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006150 )
6151 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006152 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 +01006153 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006154 goto done;
6155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006156 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006157 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006160 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006161 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006162 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006163 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006164}
6165
6166// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6167static stmt_ty
6168class_def_raw_rule(Parser *p)
6169{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006170 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006172 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006173 return NULL;
6174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006175 stmt_ty _res = NULL;
6176 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006177 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6178 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006179 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006180 return NULL;
6181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006182 int _start_lineno = p->tokens[_mark]->lineno;
6183 UNUSED(_start_lineno); // Only used by EXTRA macro
6184 int _start_col_offset = p->tokens[_mark]->col_offset;
6185 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006186 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006188 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006189 return NULL;
6190 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006191 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 +01006192 Token * _keyword;
6193 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006194 expr_ty a;
6195 void *b;
6196 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006197 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006198 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006199 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006200 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006201 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006202 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006203 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006204 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006205 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006206 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006207 )
6208 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006209 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 +01006210 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6211 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006213 return NULL;
6214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006215 int _end_lineno = _token->end_lineno;
6216 UNUSED(_end_lineno); // Only used by EXTRA macro
6217 int _end_col_offset = _token->end_col_offset;
6218 UNUSED(_end_col_offset); // Only used by EXTRA macro
6219 _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 );
6220 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006221 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006222 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006223 return NULL;
6224 }
6225 goto done;
6226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006227 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006228 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006231 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006232 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006233 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006234 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006235}
6236
6237// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6238static asdl_seq*
6239block_rule(Parser *p)
6240{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006241 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006244 return NULL;
6245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006246 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006247 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6248 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006249 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006251 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006252 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006254 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006255 return NULL;
6256 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006257 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 +01006258 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006259 Token * dedent_var;
6260 Token * indent_var;
6261 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006262 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006263 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006264 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006265 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006266 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006267 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006268 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006269 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006270 )
6271 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006272 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 +01006273 _res = a;
6274 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006275 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006277 return NULL;
6278 }
6279 goto done;
6280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006281 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006282 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006284 }
6285 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006288 return NULL;
6289 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006290 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006291 asdl_seq* simple_stmt_var;
6292 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006293 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006294 )
6295 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006296 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006297 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006298 goto done;
6299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006300 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006301 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006303 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02006304 if (p->call_invalid_rules) { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006306 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006307 return NULL;
6308 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006309 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006310 void *invalid_block_var;
6311 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006312 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006313 )
6314 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006315 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006316 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 goto done;
6318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006319 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006320 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006323 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006324 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006325 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006326 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006327 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006328}
6329
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006330// star_expressions:
6331// | star_expression ((',' star_expression))+ ','?
6332// | star_expression ','
6333// | star_expression
6334static expr_ty
6335star_expressions_rule(Parser *p)
6336{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006337 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006340 return NULL;
6341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006342 expr_ty _res = NULL;
6343 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006344 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6345 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006346 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006347 return NULL;
6348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006349 int _start_lineno = p->tokens[_mark]->lineno;
6350 UNUSED(_start_lineno); // Only used by EXTRA macro
6351 int _start_col_offset = p->tokens[_mark]->col_offset;
6352 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006353 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006355 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006356 return NULL;
6357 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006358 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 +01006359 void *_opt_var;
6360 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006361 expr_ty a;
6362 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006363 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006364 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006365 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00006366 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006367 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006368 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006369 )
6370 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006371 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 +01006372 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6373 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006375 return NULL;
6376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006377 int _end_lineno = _token->end_lineno;
6378 UNUSED(_end_lineno); // Only used by EXTRA macro
6379 int _end_col_offset = _token->end_col_offset;
6380 UNUSED(_end_col_offset); // Only used by EXTRA macro
6381 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6382 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006383 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006384 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006385 return NULL;
6386 }
6387 goto done;
6388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006389 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006390 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006392 }
6393 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006396 return NULL;
6397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006398 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006399 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006400 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006401 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006402 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006403 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006404 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006405 )
6406 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006407 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 +01006408 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6409 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006411 return NULL;
6412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006413 int _end_lineno = _token->end_lineno;
6414 UNUSED(_end_lineno); // Only used by EXTRA macro
6415 int _end_col_offset = _token->end_col_offset;
6416 UNUSED(_end_col_offset); // Only used by EXTRA macro
6417 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6418 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006421 return NULL;
6422 }
6423 goto done;
6424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006426 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006428 }
6429 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006432 return NULL;
6433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006434 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006435 expr_ty star_expression_var;
6436 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006437 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006438 )
6439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006440 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 +01006441 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006442 goto done;
6443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006444 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006445 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006448 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006449 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006450 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006451 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006452}
6453
6454// star_expression: '*' bitwise_or | expression
6455static expr_ty
6456star_expression_rule(Parser *p)
6457{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006458 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006461 return NULL;
6462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006463 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006464 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6465 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006466 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006468 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006469 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006472 return NULL;
6473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006474 int _start_lineno = p->tokens[_mark]->lineno;
6475 UNUSED(_start_lineno); // Only used by EXTRA macro
6476 int _start_col_offset = p->tokens[_mark]->col_offset;
6477 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006478 { // '*' bitwise_or
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_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006484 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006485 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006486 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006487 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006488 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006489 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006490 )
6491 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006492 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 +01006493 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6494 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006496 return NULL;
6497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006498 int _end_lineno = _token->end_lineno;
6499 UNUSED(_end_lineno); // Only used by EXTRA macro
6500 int _end_col_offset = _token->end_col_offset;
6501 UNUSED(_end_col_offset); // Only used by EXTRA macro
6502 _res = _Py_Starred ( a , Load , EXTRA );
6503 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006504 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006506 return NULL;
6507 }
6508 goto done;
6509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006510 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006511 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006513 }
6514 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006515 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006516 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006517 return NULL;
6518 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006519 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006520 expr_ty expression_var;
6521 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006522 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006523 )
6524 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006525 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006526 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006527 goto done;
6528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006529 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006530 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006533 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006534 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006535 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006536 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006537 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006538}
6539
6540// star_named_expressions: ','.star_named_expression+ ','?
6541static asdl_seq*
6542star_named_expressions_rule(Parser *p)
6543{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006544 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006545 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006547 return NULL;
6548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006549 asdl_seq* _res = NULL;
6550 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006551 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006554 return NULL;
6555 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006556 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 +01006557 void *_opt_var;
6558 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006559 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006560 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00006561 (a = _gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006562 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006563 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006564 )
6565 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006566 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 +01006567 _res = a;
6568 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006569 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006570 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006571 return NULL;
6572 }
6573 goto done;
6574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006575 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006576 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006579 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006580 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006581 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006582 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006583}
6584
6585// star_named_expression: '*' bitwise_or | named_expression
6586static expr_ty
6587star_named_expression_rule(Parser *p)
6588{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006589 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006592 return NULL;
6593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006594 expr_ty _res = NULL;
6595 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006596 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6597 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006599 return NULL;
6600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006601 int _start_lineno = p->tokens[_mark]->lineno;
6602 UNUSED(_start_lineno); // Only used by EXTRA macro
6603 int _start_col_offset = p->tokens[_mark]->col_offset;
6604 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006605 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006608 return NULL;
6609 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006610 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 +01006611 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006612 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006613 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006614 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006616 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006617 )
6618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006619 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 +01006620 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6621 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006623 return NULL;
6624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006625 int _end_lineno = _token->end_lineno;
6626 UNUSED(_end_lineno); // Only used by EXTRA macro
6627 int _end_col_offset = _token->end_col_offset;
6628 UNUSED(_end_col_offset); // Only used by EXTRA macro
6629 _res = _Py_Starred ( a , Load , EXTRA );
6630 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006633 return NULL;
6634 }
6635 goto done;
6636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006637 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006638 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006640 }
6641 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006644 return NULL;
6645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006646 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 +01006647 expr_ty named_expression_var;
6648 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006649 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006650 )
6651 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006652 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 +01006653 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006654 goto done;
6655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006657 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006660 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006661 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006662 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006663 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006664}
6665
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006666// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006667static expr_ty
6668named_expression_rule(Parser *p)
6669{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006670 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006671 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006673 return NULL;
6674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006675 expr_ty _res = NULL;
6676 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006677 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6678 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006679 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006680 return NULL;
6681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006682 int _start_lineno = p->tokens[_mark]->lineno;
6683 UNUSED(_start_lineno); // Only used by EXTRA macro
6684 int _start_col_offset = p->tokens[_mark]->col_offset;
6685 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006686 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006688 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006689 return NULL;
6690 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006691 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6692 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006693 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006694 expr_ty a;
6695 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006696 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006697 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006698 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006699 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006700 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006701 (_cut_var = 1)
6702 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006703 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006704 )
6705 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006706 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 +01006707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6708 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006710 return NULL;
6711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006712 int _end_lineno = _token->end_lineno;
6713 UNUSED(_end_lineno); // Only used by EXTRA macro
6714 int _end_col_offset = _token->end_col_offset;
6715 UNUSED(_end_col_offset); // Only used by EXTRA macro
6716 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6717 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006718 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006720 return NULL;
6721 }
6722 goto done;
6723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006724 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006725 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6727 if (_cut_var) {
6728 D(p->level--);
6729 return NULL;
6730 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006731 }
6732 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006735 return NULL;
6736 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006737 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006738 expr_ty expression_var;
6739 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006740 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006741 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006742 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006743 )
6744 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006745 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006746 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006747 goto done;
6748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006749 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006750 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006752 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02006753 if (p->call_invalid_rules) { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006754 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006755 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006756 return NULL;
6757 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006758 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 +01006759 void *invalid_named_expression_var;
6760 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006761 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006762 )
6763 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006764 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 +01006765 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006766 goto done;
6767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006768 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006769 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006772 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006773 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006774 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006775 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006776}
6777
6778// annotated_rhs: yield_expr | star_expressions
6779static expr_ty
6780annotated_rhs_rule(Parser *p)
6781{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006782 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006784 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006785 return NULL;
6786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006787 expr_ty _res = NULL;
6788 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006789 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006790 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006791 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006792 return NULL;
6793 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006794 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006795 expr_ty yield_expr_var;
6796 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006797 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006798 )
6799 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006800 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 +01006801 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006802 goto done;
6803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006804 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006805 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006807 }
6808 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006809 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006810 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006811 return NULL;
6812 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006813 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006814 expr_ty star_expressions_var;
6815 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006816 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006817 )
6818 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006819 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 +01006820 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006821 goto done;
6822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006823 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006824 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006827 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006828 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006830 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006831}
6832
6833// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6834static expr_ty
6835expressions_rule(Parser *p)
6836{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006837 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006839 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006840 return NULL;
6841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006842 expr_ty _res = NULL;
6843 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006844 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6845 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006847 return NULL;
6848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006849 int _start_lineno = p->tokens[_mark]->lineno;
6850 UNUSED(_start_lineno); // Only used by EXTRA macro
6851 int _start_col_offset = p->tokens[_mark]->col_offset;
6852 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006853 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006854 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006855 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006856 return NULL;
6857 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006858 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006859 void *_opt_var;
6860 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006861 expr_ty a;
6862 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006863 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006864 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006865 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00006866 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006867 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006868 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006869 )
6870 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006871 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6873 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006875 return NULL;
6876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006877 int _end_lineno = _token->end_lineno;
6878 UNUSED(_end_lineno); // Only used by EXTRA macro
6879 int _end_col_offset = _token->end_col_offset;
6880 UNUSED(_end_col_offset); // Only used by EXTRA macro
6881 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6882 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006883 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006885 return NULL;
6886 }
6887 goto done;
6888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006889 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006890 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006892 }
6893 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006895 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006896 return NULL;
6897 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006898 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006899 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006900 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006901 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006902 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006903 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006904 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006905 )
6906 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006907 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006908 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6909 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006911 return NULL;
6912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006913 int _end_lineno = _token->end_lineno;
6914 UNUSED(_end_lineno); // Only used by EXTRA macro
6915 int _end_col_offset = _token->end_col_offset;
6916 UNUSED(_end_col_offset); // Only used by EXTRA macro
6917 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6918 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006919 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006921 return NULL;
6922 }
6923 goto done;
6924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006925 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006926 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006928 }
6929 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006931 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006932 return NULL;
6933 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006934 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006935 expr_ty expression_var;
6936 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006937 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006938 )
6939 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006940 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006941 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006942 goto done;
6943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006944 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006945 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006948 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006949 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006950 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006951 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006952}
6953
6954// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6955static expr_ty
6956expression_rule(Parser *p)
6957{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006958 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006959 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006961 return NULL;
6962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006963 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006964 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
6965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006966 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006968 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006969 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6970 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006971 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006972 return NULL;
6973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006974 int _start_lineno = p->tokens[_mark]->lineno;
6975 UNUSED(_start_lineno); // Only used by EXTRA macro
6976 int _start_col_offset = p->tokens[_mark]->col_offset;
6977 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006978 { // disjunction 'if' disjunction 'else' 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> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006984 Token * _keyword;
6985 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006986 expr_ty a;
6987 expr_ty b;
6988 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006989 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006990 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006991 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006992 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006994 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006995 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006996 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006998 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006999 )
7000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007001 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 +01007002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7003 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007005 return NULL;
7006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007007 int _end_lineno = _token->end_lineno;
7008 UNUSED(_end_lineno); // Only used by EXTRA macro
7009 int _end_col_offset = _token->end_col_offset;
7010 UNUSED(_end_col_offset); // Only used by EXTRA macro
7011 _res = _Py_IfExp ( b , a , c , EXTRA );
7012 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007013 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007015 return NULL;
7016 }
7017 goto done;
7018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007019 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007020 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007022 }
7023 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007025 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007026 return NULL;
7027 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007028 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007029 expr_ty disjunction_var;
7030 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007031 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007032 )
7033 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007034 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007035 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007036 goto done;
7037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007039 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007041 }
7042 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007045 return NULL;
7046 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007047 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007048 expr_ty lambdef_var;
7049 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007050 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007051 )
7052 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007053 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007054 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007055 goto done;
7056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007057 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007058 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007061 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007062 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007063 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007064 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007065 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007066}
7067
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007068// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007069static expr_ty
7070lambdef_rule(Parser *p)
7071{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007072 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007075 return NULL;
7076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007077 expr_ty _res = NULL;
7078 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007079 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7080 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007082 return NULL;
7083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007084 int _start_lineno = p->tokens[_mark]->lineno;
7085 UNUSED(_start_lineno); // Only used by EXTRA macro
7086 int _start_col_offset = p->tokens[_mark]->col_offset;
7087 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007088 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007090 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007091 return NULL;
7092 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007093 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 +01007094 Token * _keyword;
7095 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007096 void *a;
7097 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007098 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007099 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007100 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007101 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007102 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007103 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007104 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007105 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007106 )
7107 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007108 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 +01007109 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7110 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007112 return NULL;
7113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007114 int _end_lineno = _token->end_lineno;
7115 UNUSED(_end_lineno); // Only used by EXTRA macro
7116 int _end_col_offset = _token->end_col_offset;
7117 UNUSED(_end_col_offset); // Only used by EXTRA macro
7118 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7119 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007120 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007122 return NULL;
7123 }
7124 goto done;
7125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007126 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007127 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7129 }
7130 _res = NULL;
7131 done:
7132 D(p->level--);
7133 return _res;
7134}
7135
7136// lambda_params: invalid_lambda_parameters | lambda_parameters
7137static arguments_ty
7138lambda_params_rule(Parser *p)
7139{
7140 D(p->level++);
7141 if (p->error_indicator) {
7142 D(p->level--);
7143 return NULL;
7144 }
7145 arguments_ty _res = NULL;
7146 int _mark = p->mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02007147 if (p->call_invalid_rules) { // invalid_lambda_parameters
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007148 if (p->error_indicator) {
7149 D(p->level--);
7150 return NULL;
7151 }
7152 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7153 void *invalid_lambda_parameters_var;
7154 if (
7155 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7156 )
7157 {
7158 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7159 _res = invalid_lambda_parameters_var;
7160 goto done;
7161 }
7162 p->mark = _mark;
7163 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7165 }
7166 { // lambda_parameters
7167 if (p->error_indicator) {
7168 D(p->level--);
7169 return NULL;
7170 }
7171 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7172 arguments_ty lambda_parameters_var;
7173 if (
7174 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7175 )
7176 {
7177 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7178 _res = lambda_parameters_var;
7179 goto done;
7180 }
7181 p->mark = _mark;
7182 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007185 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007186 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007187 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007188 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007189}
7190
7191// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007192// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7193// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7194// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7195// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007196// | lambda_star_etc
7197static arguments_ty
7198lambda_parameters_rule(Parser *p)
7199{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007200 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007201 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007202 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007203 return NULL;
7204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007205 arguments_ty _res = NULL;
7206 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007207 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007208 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007209 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007210 return NULL;
7211 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007212 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 +01007213 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007214 asdl_seq * b;
7215 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007216 void *d;
7217 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007218 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007219 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007220 (b = _loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007221 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007222 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007223 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007224 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007225 )
7226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007227 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 +01007228 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007232 return NULL;
7233 }
7234 goto done;
7235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007237 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7238 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 +01007239 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007240 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007243 return NULL;
7244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007245 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 +01007246 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007247 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007248 void *c;
7249 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007250 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007251 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007252 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007253 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007254 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007255 )
7256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007257 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 +01007258 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7259 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007260 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007261 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007262 return NULL;
7263 }
7264 goto done;
7265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007266 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007267 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7268 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 +01007269 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007270 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007271 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007272 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007273 return NULL;
7274 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007275 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 -07007276 asdl_seq * a;
7277 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007278 void *c;
7279 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00007280 (a = _loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007281 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007282 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007283 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007284 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007285 )
7286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007287 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 +01007288 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7289 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007292 return NULL;
7293 }
7294 goto done;
7295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007297 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7298 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 +01007299 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007300 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007303 return NULL;
7304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007305 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 -07007306 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007307 void *b;
7308 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00007309 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007310 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007311 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007312 )
7313 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007314 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 +01007315 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7316 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007317 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007319 return NULL;
7320 }
7321 goto done;
7322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007324 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007326 }
7327 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007330 return NULL;
7331 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007332 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 +01007333 StarEtc* a;
7334 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007335 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007336 )
7337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007338 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007339 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7340 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007341 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007342 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007343 return NULL;
7344 }
7345 goto done;
7346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007347 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007348 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007351 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007352 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007353 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007354 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007355}
7356
Guido van Rossum3941d972020-05-01 09:42:03 -07007357// lambda_slash_no_default:
7358// | lambda_param_no_default+ '/' ','
7359// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007360static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007361lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007362{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007363 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007364 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007365 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007366 return NULL;
7367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007368 asdl_seq* _res = NULL;
7369 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007370 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007371 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007372 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007373 return NULL;
7374 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007375 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 +01007376 Token * _literal;
7377 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007378 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007379 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00007380 (a = _loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007381 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007382 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007383 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007384 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007385 )
7386 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007387 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 +01007388 _res = a;
7389 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007390 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007391 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007392 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_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007399 }
7400 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007402 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007403 return NULL;
7404 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007405 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 +01007406 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007407 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007408 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00007409 (a = _loop1_81_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007410 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007411 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007412 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007413 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007414 )
7415 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007416 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 +01007417 _res = a;
7418 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007421 return NULL;
7422 }
7423 goto done;
7424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007426 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007429 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007430 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007431 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007432 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007433}
7434
Guido van Rossum3941d972020-05-01 09:42:03 -07007435// lambda_slash_with_default:
7436// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7437// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007438static SlashWithDefault*
7439lambda_slash_with_default_rule(Parser *p)
7440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007441 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007444 return NULL;
7445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007446 SlashWithDefault* _res = NULL;
7447 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007448 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007450 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007451 return NULL;
7452 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007453 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 +01007454 Token * _literal;
7455 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007456 asdl_seq * a;
7457 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007458 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00007459 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007460 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007461 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007462 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007463 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007464 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007465 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007466 )
7467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007468 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 +01007469 _res = _PyPegen_slash_with_default ( p , a , b );
7470 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007471 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007472 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007473 return NULL;
7474 }
7475 goto done;
7476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007477 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007478 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007480 }
7481 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007484 return NULL;
7485 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007486 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 +01007487 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007488 asdl_seq * a;
7489 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007490 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00007491 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007492 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007493 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007494 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007495 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007496 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007497 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007498 )
7499 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007500 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 +01007501 _res = _PyPegen_slash_with_default ( p , a , b );
7502 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007503 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007505 return NULL;
7506 }
7507 goto done;
7508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007509 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007510 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007513 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007514 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007515 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007516 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007517}
7518
7519// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007520// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7521// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7522// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007523// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007524static StarEtc*
7525lambda_star_etc_rule(Parser *p)
7526{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007527 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007529 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007530 return NULL;
7531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007532 StarEtc* _res = NULL;
7533 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007534 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007536 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007537 return NULL;
7538 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007539 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 +01007540 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007541 arg_ty a;
7542 asdl_seq * b;
7543 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007544 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007545 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007546 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007547 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007548 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007549 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007550 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007551 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007552 )
7553 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007554 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 +01007555 _res = _PyPegen_star_etc ( p , a , b , c );
7556 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007557 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007559 return NULL;
7560 }
7561 goto done;
7562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007563 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007564 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007566 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007567 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007570 return NULL;
7571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007572 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 +01007573 Token * _literal;
7574 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007575 asdl_seq * b;
7576 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007577 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007578 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007579 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007580 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007581 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00007582 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007583 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007584 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007585 )
7586 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007587 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 +01007588 _res = _PyPegen_star_etc ( p , NULL , b , c );
7589 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007590 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007592 return NULL;
7593 }
7594 goto done;
7595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007597 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007599 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007600 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007603 return NULL;
7604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007605 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 +01007606 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007607 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007608 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007609 )
7610 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007611 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 +01007612 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7613 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007614 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007615 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007616 return NULL;
7617 }
7618 goto done;
7619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007620 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007621 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007623 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +02007624 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007627 return NULL;
7628 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007629 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 +03007630 void *invalid_lambda_star_etc_var;
7631 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007632 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007633 )
7634 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007635 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 +01007636 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007637 goto done;
7638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007640 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007643 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007644 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007646 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007647}
7648
Guido van Rossum3941d972020-05-01 09:42:03 -07007649// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007650static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007651lambda_kwds_rule(Parser *p)
7652{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007653 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007655 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007656 return NULL;
7657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007658 arg_ty _res = NULL;
7659 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007660 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007663 return NULL;
7664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007665 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 +01007666 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007667 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007668 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007669 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007670 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007671 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007672 )
7673 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007674 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 +01007675 _res = a;
7676 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007677 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007678 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007679 return NULL;
7680 }
7681 goto done;
7682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007684 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007687 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007688 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007689 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007690 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007691}
7692
7693// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7694static arg_ty
7695lambda_param_no_default_rule(Parser *p)
7696{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007697 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007698 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007699 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007700 return NULL;
7701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007702 arg_ty _res = NULL;
7703 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007704 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007707 return NULL;
7708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007709 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007710 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007711 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007712 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007713 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007714 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007715 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007716 )
7717 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007718 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007719 _res = a;
7720 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007721 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007722 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007723 return NULL;
7724 }
7725 goto done;
7726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007728 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007730 }
7731 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007733 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007734 return NULL;
7735 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007736 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 -07007737 arg_ty a;
7738 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007739 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007740 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007741 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007742 )
7743 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007744 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 +01007745 _res = a;
7746 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007747 p->error_indicator = 1;
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 }
7751 goto done;
7752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007753 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007754 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007757 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007758 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007759 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007760 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007761}
7762
7763// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7764static NameDefaultPair*
7765lambda_param_with_default_rule(Parser *p)
7766{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007767 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007769 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007770 return NULL;
7771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007772 NameDefaultPair* _res = NULL;
7773 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007774 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007776 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007777 return NULL;
7778 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007779 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 +01007780 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007781 arg_ty a;
7782 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007783 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007784 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007785 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007786 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007787 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007788 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007789 )
7790 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007791 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 +01007792 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7793 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007795 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007796 return NULL;
7797 }
7798 goto done;
7799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007801 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007803 }
7804 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007807 return NULL;
7808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007809 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 -07007810 arg_ty a;
7811 expr_ty c;
7812 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007813 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007814 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007815 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007816 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007817 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007818 )
7819 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007820 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 +01007821 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7822 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007823 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007824 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007825 return NULL;
7826 }
7827 goto done;
7828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007829 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007830 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007833 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007834 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007835 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007836 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007837}
7838
7839// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7840static NameDefaultPair*
7841lambda_param_maybe_default_rule(Parser *p)
7842{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007843 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007844 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007845 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007846 return NULL;
7847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007848 NameDefaultPair* _res = NULL;
7849 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007850 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007852 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007853 return NULL;
7854 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007855 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 +01007856 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007857 arg_ty a;
7858 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007859 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007860 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007862 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007863 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007864 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007865 )
7866 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007867 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 +01007868 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7869 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007870 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007871 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007872 return NULL;
7873 }
7874 goto done;
7875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007876 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007877 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007879 }
7880 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007881 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007882 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007883 return NULL;
7884 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007885 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 -07007886 arg_ty a;
7887 void *c;
7888 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007889 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007890 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007891 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007892 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007893 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007894 )
7895 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007896 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 +01007897 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7898 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007899 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007900 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007901 return NULL;
7902 }
7903 goto done;
7904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007906 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007909 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007910 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007911 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007912 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007913}
7914
7915// lambda_param: NAME
7916static arg_ty
7917lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007918{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007919 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007921 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007922 return NULL;
7923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007924 arg_ty _res = NULL;
7925 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007926 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7927 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007928 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007929 return NULL;
7930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007931 int _start_lineno = p->tokens[_mark]->lineno;
7932 UNUSED(_start_lineno); // Only used by EXTRA macro
7933 int _start_col_offset = p->tokens[_mark]->col_offset;
7934 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007935 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007936 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007937 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007938 return NULL;
7939 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007940 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007941 expr_ty a;
7942 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007943 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007944 )
7945 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007946 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007947 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7948 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007949 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007950 return NULL;
7951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007952 int _end_lineno = _token->end_lineno;
7953 UNUSED(_end_lineno); // Only used by EXTRA macro
7954 int _end_col_offset = _token->end_col_offset;
7955 UNUSED(_end_col_offset); // Only used by EXTRA macro
7956 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7957 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007958 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007960 return NULL;
7961 }
7962 goto done;
7963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007964 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007965 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
7966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007968 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007969 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007970 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007971 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007972}
7973
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007974// disjunction: conjunction (('or' conjunction))+ | conjunction
7975static expr_ty
7976disjunction_rule(Parser *p)
7977{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007978 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007981 return NULL;
7982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007983 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007984 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
7985 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007986 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007988 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007989 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7990 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007991 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007992 return NULL;
7993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007994 int _start_lineno = p->tokens[_mark]->lineno;
7995 UNUSED(_start_lineno); // Only used by EXTRA macro
7996 int _start_col_offset = p->tokens[_mark]->col_offset;
7997 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007998 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008001 return NULL;
8002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008003 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008004 expr_ty a;
8005 asdl_seq * b;
8006 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008007 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008008 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00008009 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008010 )
8011 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008012 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 +01008013 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8014 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008015 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008016 return NULL;
8017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008018 int _end_lineno = _token->end_lineno;
8019 UNUSED(_end_lineno); // Only used by EXTRA macro
8020 int _end_col_offset = _token->end_col_offset;
8021 UNUSED(_end_col_offset); // Only used by EXTRA macro
8022 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8023 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008024 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008026 return NULL;
8027 }
8028 goto done;
8029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008030 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008031 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008033 }
8034 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008036 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008037 return NULL;
8038 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008039 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008040 expr_ty conjunction_var;
8041 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008042 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008043 )
8044 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008045 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008046 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008047 goto done;
8048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008049 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008050 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008053 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008054 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008055 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008056 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008057 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008058}
8059
8060// conjunction: inversion (('and' inversion))+ | inversion
8061static expr_ty
8062conjunction_rule(Parser *p)
8063{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008064 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008067 return NULL;
8068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008069 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008070 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8071 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008072 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008074 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008075 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8076 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008077 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008078 return NULL;
8079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008080 int _start_lineno = p->tokens[_mark]->lineno;
8081 UNUSED(_start_lineno); // Only used by EXTRA macro
8082 int _start_col_offset = p->tokens[_mark]->col_offset;
8083 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008084 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008085 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008086 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008087 return NULL;
8088 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008089 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008090 expr_ty a;
8091 asdl_seq * b;
8092 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008093 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008094 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00008095 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008096 )
8097 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008098 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 +01008099 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8100 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008101 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008102 return NULL;
8103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008104 int _end_lineno = _token->end_lineno;
8105 UNUSED(_end_lineno); // Only used by EXTRA macro
8106 int _end_col_offset = _token->end_col_offset;
8107 UNUSED(_end_col_offset); // Only used by EXTRA macro
8108 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8109 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008110 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008112 return NULL;
8113 }
8114 goto done;
8115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008116 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008117 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008119 }
8120 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008121 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008122 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008123 return NULL;
8124 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008125 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008126 expr_ty inversion_var;
8127 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008128 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008129 )
8130 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008131 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008132 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008133 goto done;
8134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008135 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008136 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008139 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008140 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008141 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008142 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008143 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008144}
8145
8146// inversion: 'not' inversion | comparison
8147static expr_ty
8148inversion_rule(Parser *p)
8149{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008150 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008151 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008152 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008153 return NULL;
8154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008155 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008156 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8157 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008158 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008160 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008161 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8162 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008163 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008164 return NULL;
8165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008166 int _start_lineno = p->tokens[_mark]->lineno;
8167 UNUSED(_start_lineno); // Only used by EXTRA macro
8168 int _start_col_offset = p->tokens[_mark]->col_offset;
8169 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008170 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008173 return NULL;
8174 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008175 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008176 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008177 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008178 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008179 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008180 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008181 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008182 )
8183 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008184 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008185 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8186 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008188 return NULL;
8189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008190 int _end_lineno = _token->end_lineno;
8191 UNUSED(_end_lineno); // Only used by EXTRA macro
8192 int _end_col_offset = _token->end_col_offset;
8193 UNUSED(_end_col_offset); // Only used by EXTRA macro
8194 _res = _Py_UnaryOp ( Not , a , EXTRA );
8195 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008196 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008198 return NULL;
8199 }
8200 goto done;
8201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008202 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008203 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008205 }
8206 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008208 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008209 return NULL;
8210 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008211 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008212 expr_ty comparison_var;
8213 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008214 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008215 )
8216 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008217 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008218 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008219 goto done;
8220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008221 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008222 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008225 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008226 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008227 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008228 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008229 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008230}
8231
8232// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8233static expr_ty
8234comparison_rule(Parser *p)
8235{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008236 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008237 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008238 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008239 return NULL;
8240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008241 expr_ty _res = NULL;
8242 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008243 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8244 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008245 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008246 return NULL;
8247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008248 int _start_lineno = p->tokens[_mark]->lineno;
8249 UNUSED(_start_lineno); // Only used by EXTRA macro
8250 int _start_col_offset = p->tokens[_mark]->col_offset;
8251 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008252 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008254 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008255 return NULL;
8256 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008257 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 +01008258 expr_ty a;
8259 asdl_seq * b;
8260 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008261 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008262 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +00008263 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008264 )
8265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008266 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 +01008267 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8268 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008270 return NULL;
8271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008272 int _end_lineno = _token->end_lineno;
8273 UNUSED(_end_lineno); // Only used by EXTRA macro
8274 int _end_col_offset = _token->end_col_offset;
8275 UNUSED(_end_col_offset); // Only used by EXTRA macro
8276 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8277 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008278 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008280 return NULL;
8281 }
8282 goto done;
8283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008284 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008285 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008287 }
8288 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008290 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008291 return NULL;
8292 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008293 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008294 expr_ty bitwise_or_var;
8295 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008296 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008297 )
8298 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008299 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008300 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008301 goto done;
8302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008303 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008304 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008307 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008308 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008309 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008310 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008311}
8312
8313// compare_op_bitwise_or_pair:
8314// | eq_bitwise_or
8315// | noteq_bitwise_or
8316// | lte_bitwise_or
8317// | lt_bitwise_or
8318// | gte_bitwise_or
8319// | gt_bitwise_or
8320// | notin_bitwise_or
8321// | in_bitwise_or
8322// | isnot_bitwise_or
8323// | is_bitwise_or
8324static CmpopExprPair*
8325compare_op_bitwise_or_pair_rule(Parser *p)
8326{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008327 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008330 return NULL;
8331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008332 CmpopExprPair* _res = NULL;
8333 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008334 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008336 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008337 return NULL;
8338 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008339 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 +01008340 CmpopExprPair* eq_bitwise_or_var;
8341 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008342 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008343 )
8344 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008345 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 +01008346 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008347 goto done;
8348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008349 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008350 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008352 }
8353 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008355 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008356 return NULL;
8357 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008358 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 +01008359 CmpopExprPair* noteq_bitwise_or_var;
8360 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008361 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008362 )
8363 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008364 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 +01008365 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008366 goto done;
8367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008368 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008369 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008371 }
8372 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008374 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008375 return NULL;
8376 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008377 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 +01008378 CmpopExprPair* lte_bitwise_or_var;
8379 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008380 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008381 )
8382 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008383 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 +01008384 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008385 goto done;
8386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008387 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008388 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008390 }
8391 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008393 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008394 return NULL;
8395 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008396 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 +01008397 CmpopExprPair* lt_bitwise_or_var;
8398 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008399 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008400 )
8401 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008402 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 +01008403 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008404 goto done;
8405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008406 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008407 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008409 }
8410 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008413 return NULL;
8414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008415 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 +01008416 CmpopExprPair* gte_bitwise_or_var;
8417 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008418 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008419 )
8420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008421 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 +01008422 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008423 goto done;
8424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008426 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008428 }
8429 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008432 return NULL;
8433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008434 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 +01008435 CmpopExprPair* gt_bitwise_or_var;
8436 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008437 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008438 )
8439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008440 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 +01008441 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008442 goto done;
8443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008444 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008445 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008447 }
8448 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008450 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008451 return NULL;
8452 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008453 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 +01008454 CmpopExprPair* notin_bitwise_or_var;
8455 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008456 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008457 )
8458 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008459 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 +01008460 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008461 goto done;
8462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008463 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008464 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008466 }
8467 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008469 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008470 return NULL;
8471 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008472 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 +01008473 CmpopExprPair* in_bitwise_or_var;
8474 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008475 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008476 )
8477 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008478 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 +01008479 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008480 goto done;
8481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008483 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008485 }
8486 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008489 return NULL;
8490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008491 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 +01008492 CmpopExprPair* isnot_bitwise_or_var;
8493 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008494 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008495 )
8496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008497 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 +01008498 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008499 goto done;
8500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008502 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008504 }
8505 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008507 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008508 return NULL;
8509 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008510 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 +01008511 CmpopExprPair* is_bitwise_or_var;
8512 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008513 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008514 )
8515 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008516 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 +01008517 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008518 goto done;
8519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008520 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008521 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008524 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008525 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008526 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008527 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008528}
8529
8530// eq_bitwise_or: '==' bitwise_or
8531static CmpopExprPair*
8532eq_bitwise_or_rule(Parser *p)
8533{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008534 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008536 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008537 return NULL;
8538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008539 CmpopExprPair* _res = NULL;
8540 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008541 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008542 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008543 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008544 return NULL;
8545 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008546 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 +01008547 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008548 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008549 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008550 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008551 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008552 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008553 )
8554 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008555 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 +01008556 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8557 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008558 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008560 return NULL;
8561 }
8562 goto done;
8563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008565 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008568 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008569 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008571 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008572}
8573
Pablo Galindo2b74c832020-04-27 18:02:07 +01008574// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008575static CmpopExprPair*
8576noteq_bitwise_or_rule(Parser *p)
8577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008578 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008581 return NULL;
8582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008583 CmpopExprPair* _res = NULL;
8584 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008585 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008587 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008588 return NULL;
8589 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008590 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindo87c87b52020-11-18 23:44:30 +00008591 void *_tmp_91_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008592 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008593 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +00008594 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008595 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008596 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008597 )
8598 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008599 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008600 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8601 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008602 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008604 return NULL;
8605 }
8606 goto done;
8607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008608 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008609 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008612 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008613 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008614 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008615 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008616}
8617
8618// lte_bitwise_or: '<=' bitwise_or
8619static CmpopExprPair*
8620lte_bitwise_or_rule(Parser *p)
8621{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008622 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008625 return NULL;
8626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008627 CmpopExprPair* _res = NULL;
8628 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008629 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008631 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008632 return NULL;
8633 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008634 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008635 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008636 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008637 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008638 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008639 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008640 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008641 )
8642 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008643 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008644 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8645 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008646 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008647 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008648 return NULL;
8649 }
8650 goto done;
8651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008652 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008653 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008656 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008657 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008658 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008659 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008660}
8661
8662// lt_bitwise_or: '<' bitwise_or
8663static CmpopExprPair*
8664lt_bitwise_or_rule(Parser *p)
8665{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008666 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008669 return NULL;
8670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008671 CmpopExprPair* _res = NULL;
8672 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008673 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008676 return NULL;
8677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008678 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008679 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008680 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008681 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008682 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008683 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008684 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008685 )
8686 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008687 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008688 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8689 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008690 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008692 return NULL;
8693 }
8694 goto done;
8695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008696 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008697 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008700 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008701 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008703 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008704}
8705
8706// gte_bitwise_or: '>=' bitwise_or
8707static CmpopExprPair*
8708gte_bitwise_or_rule(Parser *p)
8709{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008710 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008713 return NULL;
8714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008715 CmpopExprPair* _res = NULL;
8716 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008717 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008720 return NULL;
8721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008722 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008723 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008724 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008725 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008726 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008727 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008728 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008729 )
8730 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008731 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008732 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8733 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008734 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008736 return NULL;
8737 }
8738 goto done;
8739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008740 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008741 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008744 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008745 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008747 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008748}
8749
8750// gt_bitwise_or: '>' bitwise_or
8751static CmpopExprPair*
8752gt_bitwise_or_rule(Parser *p)
8753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008754 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008757 return NULL;
8758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008759 CmpopExprPair* _res = NULL;
8760 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008761 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008763 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008764 return NULL;
8765 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008766 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008767 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008768 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008769 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008770 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008771 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008772 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008773 )
8774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008775 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008776 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8777 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008780 return NULL;
8781 }
8782 goto done;
8783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008784 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008785 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008788 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008789 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008790 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008791 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008792}
8793
8794// notin_bitwise_or: 'not' 'in' bitwise_or
8795static CmpopExprPair*
8796notin_bitwise_or_rule(Parser *p)
8797{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008798 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008801 return NULL;
8802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008803 CmpopExprPair* _res = NULL;
8804 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008805 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008807 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008808 return NULL;
8809 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008810 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008811 Token * _keyword;
8812 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008813 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008814 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008815 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008816 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008817 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008818 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008819 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008820 )
8821 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008822 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 +01008823 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8824 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008825 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008827 return NULL;
8828 }
8829 goto done;
8830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008831 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008832 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008835 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008836 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008838 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008839}
8840
8841// in_bitwise_or: 'in' bitwise_or
8842static CmpopExprPair*
8843in_bitwise_or_rule(Parser *p)
8844{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008845 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008848 return NULL;
8849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008850 CmpopExprPair* _res = NULL;
8851 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008852 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008854 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008855 return NULL;
8856 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008857 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 +01008858 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008859 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008860 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008861 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008862 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008863 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008864 )
8865 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008866 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008867 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8868 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008871 return NULL;
8872 }
8873 goto done;
8874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008875 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008876 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008879 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008880 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008881 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008882 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008883}
8884
8885// isnot_bitwise_or: 'is' 'not' bitwise_or
8886static CmpopExprPair*
8887isnot_bitwise_or_rule(Parser *p)
8888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008892 return NULL;
8893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008894 CmpopExprPair* _res = NULL;
8895 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008896 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008898 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008899 return NULL;
8900 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008901 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008902 Token * _keyword;
8903 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008904 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008905 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008906 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008907 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008908 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008909 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008910 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008911 )
8912 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008913 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 +01008914 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8915 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008916 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008918 return NULL;
8919 }
8920 goto done;
8921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008922 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008923 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008926 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008927 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008928 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008929 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008930}
8931
8932// is_bitwise_or: 'is' bitwise_or
8933static CmpopExprPair*
8934is_bitwise_or_rule(Parser *p)
8935{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008936 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008939 return NULL;
8940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008941 CmpopExprPair* _res = NULL;
8942 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008943 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008946 return NULL;
8947 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008948 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 +01008949 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008950 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008951 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008952 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008953 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008954 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008955 )
8956 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008957 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008958 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8959 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008960 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008962 return NULL;
8963 }
8964 goto done;
8965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008966 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008967 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008970 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008971 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008972 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008973 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008974}
8975
8976// Left-recursive
8977// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
8978static expr_ty bitwise_or_raw(Parser *);
8979static expr_ty
8980bitwise_or_rule(Parser *p)
8981{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008982 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008983 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008984 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
8985 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008986 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008988 int _mark = p->mark;
8989 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008990 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008991 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008992 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008993 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008994 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008996 p->mark = _mark;
8997 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02008998 if (p->error_indicator)
8999 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009000 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009001 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009002 _resmark = p->mark;
9003 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009005 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009006 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009007 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009008}
9009static expr_ty
9010bitwise_or_raw(Parser *p)
9011{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009012 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009013 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009015 return NULL;
9016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009017 expr_ty _res = NULL;
9018 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009019 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9020 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009021 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009022 return NULL;
9023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009024 int _start_lineno = p->tokens[_mark]->lineno;
9025 UNUSED(_start_lineno); // Only used by EXTRA macro
9026 int _start_col_offset = p->tokens[_mark]->col_offset;
9027 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009028 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009030 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009031 return NULL;
9032 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009033 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 +01009034 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009035 expr_ty a;
9036 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009037 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009038 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009039 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009040 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009041 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009042 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009043 )
9044 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009045 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 +01009046 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9047 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009048 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009049 return NULL;
9050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009051 int _end_lineno = _token->end_lineno;
9052 UNUSED(_end_lineno); // Only used by EXTRA macro
9053 int _end_col_offset = _token->end_col_offset;
9054 UNUSED(_end_col_offset); // Only used by EXTRA macro
9055 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9056 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009057 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009058 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009059 return NULL;
9060 }
9061 goto done;
9062 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009063 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009064 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009066 }
9067 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009068 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009069 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009070 return NULL;
9071 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009072 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009073 expr_ty bitwise_xor_var;
9074 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009075 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009076 )
9077 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009078 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 +01009079 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009080 goto done;
9081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009082 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009083 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009086 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009087 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009088 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009089 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009090}
9091
9092// Left-recursive
9093// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9094static expr_ty bitwise_xor_raw(Parser *);
9095static expr_ty
9096bitwise_xor_rule(Parser *p)
9097{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009098 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009099 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009100 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9101 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009102 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009104 int _mark = p->mark;
9105 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009106 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009107 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009108 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009109 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009110 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009112 p->mark = _mark;
9113 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009114 if (p->error_indicator)
9115 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009116 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009117 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009118 _resmark = p->mark;
9119 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009121 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009122 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009123 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009124}
9125static expr_ty
9126bitwise_xor_raw(Parser *p)
9127{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009128 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009130 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009131 return NULL;
9132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009133 expr_ty _res = NULL;
9134 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009135 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9136 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009137 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009138 return NULL;
9139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009140 int _start_lineno = p->tokens[_mark]->lineno;
9141 UNUSED(_start_lineno); // Only used by EXTRA macro
9142 int _start_col_offset = p->tokens[_mark]->col_offset;
9143 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009144 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009145 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009146 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009147 return NULL;
9148 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009149 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 +01009150 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009151 expr_ty a;
9152 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009153 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009154 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009155 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009156 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009157 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009158 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009159 )
9160 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009161 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 +01009162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9163 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009165 return NULL;
9166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009167 int _end_lineno = _token->end_lineno;
9168 UNUSED(_end_lineno); // Only used by EXTRA macro
9169 int _end_col_offset = _token->end_col_offset;
9170 UNUSED(_end_col_offset); // Only used by EXTRA macro
9171 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9172 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009173 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009175 return NULL;
9176 }
9177 goto done;
9178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009179 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009180 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009182 }
9183 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009186 return NULL;
9187 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009188 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 expr_ty bitwise_and_var;
9190 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009191 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009192 )
9193 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009194 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 +01009195 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009196 goto done;
9197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009198 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009199 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009202 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009203 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009204 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009205 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009206}
9207
9208// Left-recursive
9209// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9210static expr_ty bitwise_and_raw(Parser *);
9211static expr_ty
9212bitwise_and_rule(Parser *p)
9213{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009214 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009215 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009216 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9217 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009218 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009220 int _mark = p->mark;
9221 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009222 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009223 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009224 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009225 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009226 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009228 p->mark = _mark;
9229 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009230 if (p->error_indicator)
9231 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009232 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009233 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009234 _resmark = p->mark;
9235 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009237 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009238 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009239 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009240}
9241static expr_ty
9242bitwise_and_raw(Parser *p)
9243{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009244 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009247 return NULL;
9248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009249 expr_ty _res = NULL;
9250 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009251 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9252 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009254 return NULL;
9255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009256 int _start_lineno = p->tokens[_mark]->lineno;
9257 UNUSED(_start_lineno); // Only used by EXTRA macro
9258 int _start_col_offset = p->tokens[_mark]->col_offset;
9259 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009260 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009261 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009262 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009263 return NULL;
9264 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009265 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 +01009266 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009267 expr_ty a;
9268 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009269 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009270 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009271 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009272 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009273 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009274 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009275 )
9276 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009277 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 +01009278 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9279 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009281 return NULL;
9282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009283 int _end_lineno = _token->end_lineno;
9284 UNUSED(_end_lineno); // Only used by EXTRA macro
9285 int _end_col_offset = _token->end_col_offset;
9286 UNUSED(_end_col_offset); // Only used by EXTRA macro
9287 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9288 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009289 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009291 return NULL;
9292 }
9293 goto done;
9294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009295 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009296 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009298 }
9299 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009301 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009302 return NULL;
9303 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009304 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009305 expr_ty shift_expr_var;
9306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009307 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009308 )
9309 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009310 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 +01009311 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009312 goto done;
9313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009315 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009318 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009319 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009320 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009321 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009322}
9323
9324// Left-recursive
9325// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9326static expr_ty shift_expr_raw(Parser *);
9327static expr_ty
9328shift_expr_rule(Parser *p)
9329{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009330 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009331 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009332 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9333 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009334 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009336 int _mark = p->mark;
9337 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009338 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009339 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009340 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009341 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009342 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009344 p->mark = _mark;
9345 void *_raw = shift_expr_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009346 if (p->error_indicator)
9347 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009348 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009349 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009350 _resmark = p->mark;
9351 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009353 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009354 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009355 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009356}
9357static expr_ty
9358shift_expr_raw(Parser *p)
9359{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009360 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009363 return NULL;
9364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009365 expr_ty _res = NULL;
9366 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009367 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9368 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009370 return NULL;
9371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009372 int _start_lineno = p->tokens[_mark]->lineno;
9373 UNUSED(_start_lineno); // Only used by EXTRA macro
9374 int _start_col_offset = p->tokens[_mark]->col_offset;
9375 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009376 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009378 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009379 return NULL;
9380 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009381 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 +01009382 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009383 expr_ty a;
9384 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009385 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009386 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009387 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009388 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009389 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009390 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009391 )
9392 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009393 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 +01009394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9395 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009396 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009397 return NULL;
9398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009399 int _end_lineno = _token->end_lineno;
9400 UNUSED(_end_lineno); // Only used by EXTRA macro
9401 int _end_col_offset = _token->end_col_offset;
9402 UNUSED(_end_col_offset); // Only used by EXTRA macro
9403 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9404 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009405 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009407 return NULL;
9408 }
9409 goto done;
9410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009411 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009412 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009414 }
9415 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009418 return NULL;
9419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009420 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 +01009421 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009422 expr_ty a;
9423 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009424 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009425 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009426 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009427 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009428 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009429 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009430 )
9431 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009432 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 +01009433 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9434 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009436 return NULL;
9437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009438 int _end_lineno = _token->end_lineno;
9439 UNUSED(_end_lineno); // Only used by EXTRA macro
9440 int _end_col_offset = _token->end_col_offset;
9441 UNUSED(_end_col_offset); // Only used by EXTRA macro
9442 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9443 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009444 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009445 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009446 return NULL;
9447 }
9448 goto done;
9449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009451 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009453 }
9454 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009457 return NULL;
9458 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009459 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009460 expr_ty sum_var;
9461 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009462 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009463 )
9464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009465 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009466 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009467 goto done;
9468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009470 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009473 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009474 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009475 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009476 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009477}
9478
9479// Left-recursive
9480// sum: sum '+' term | sum '-' term | term
9481static expr_ty sum_raw(Parser *);
9482static expr_ty
9483sum_rule(Parser *p)
9484{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009485 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009486 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009487 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009489 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009491 int _mark = p->mark;
9492 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009493 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009494 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009495 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009496 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009497 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009499 p->mark = _mark;
9500 void *_raw = sum_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009501 if (p->error_indicator)
9502 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009503 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009505 _resmark = p->mark;
9506 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009508 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009509 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009510 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009511}
9512static expr_ty
9513sum_raw(Parser *p)
9514{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009515 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009516 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009517 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009518 return NULL;
9519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009520 expr_ty _res = NULL;
9521 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009522 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9523 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009525 return NULL;
9526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009527 int _start_lineno = p->tokens[_mark]->lineno;
9528 UNUSED(_start_lineno); // Only used by EXTRA macro
9529 int _start_col_offset = p->tokens[_mark]->col_offset;
9530 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009531 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009533 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009534 return NULL;
9535 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009536 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009537 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009538 expr_ty a;
9539 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009540 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009541 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009542 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009543 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009544 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009545 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009546 )
9547 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009548 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009549 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9550 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009552 return NULL;
9553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009554 int _end_lineno = _token->end_lineno;
9555 UNUSED(_end_lineno); // Only used by EXTRA macro
9556 int _end_col_offset = _token->end_col_offset;
9557 UNUSED(_end_col_offset); // Only used by EXTRA macro
9558 _res = _Py_BinOp ( a , Add , b , EXTRA );
9559 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009560 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009561 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009562 return NULL;
9563 }
9564 goto done;
9565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009566 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009567 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009569 }
9570 { // 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, 15)) // 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 , Sub , 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 { // 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, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009615 expr_ty term_var;
9616 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009617 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009618 )
9619 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009620 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009621 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009622 goto done;
9623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009624 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009625 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009628 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009629 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009630 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009631 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009632}
9633
9634// Left-recursive
9635// term:
9636// | term '*' factor
9637// | term '/' factor
9638// | term '//' factor
9639// | term '%' factor
9640// | term '@' factor
9641// | factor
9642static expr_ty term_raw(Parser *);
9643static expr_ty
9644term_rule(Parser *p)
9645{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009646 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009647 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009648 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9649 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009650 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009652 int _mark = p->mark;
9653 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009654 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009655 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009656 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009657 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009658 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009660 p->mark = _mark;
9661 void *_raw = term_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +02009662 if (p->error_indicator)
9663 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009664 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009665 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009666 _resmark = p->mark;
9667 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009669 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009670 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009671 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009672}
9673static expr_ty
9674term_raw(Parser *p)
9675{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009676 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009679 return NULL;
9680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009681 expr_ty _res = NULL;
9682 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009683 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9684 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009685 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009686 return NULL;
9687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009688 int _start_lineno = p->tokens[_mark]->lineno;
9689 UNUSED(_start_lineno); // Only used by EXTRA macro
9690 int _start_col_offset = p->tokens[_mark]->col_offset;
9691 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009692 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009695 return NULL;
9696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009697 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009698 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009699 expr_ty a;
9700 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009701 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009702 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009703 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009704 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009705 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009706 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009707 )
9708 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009709 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9711 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009713 return NULL;
9714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009715 int _end_lineno = _token->end_lineno;
9716 UNUSED(_end_lineno); // Only used by EXTRA macro
9717 int _end_col_offset = _token->end_col_offset;
9718 UNUSED(_end_col_offset); // Only used by EXTRA macro
9719 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9720 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009721 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 }
9725 goto done;
9726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009728 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009730 }
9731 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009733 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009734 return NULL;
9735 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009736 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009737 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009738 expr_ty a;
9739 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009740 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009741 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009742 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009743 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009744 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009745 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009746 )
9747 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009748 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009749 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9750 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009752 return NULL;
9753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009754 int _end_lineno = _token->end_lineno;
9755 UNUSED(_end_lineno); // Only used by EXTRA macro
9756 int _end_col_offset = _token->end_col_offset;
9757 UNUSED(_end_col_offset); // Only used by EXTRA macro
9758 _res = _Py_BinOp ( a , Div , b , EXTRA );
9759 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009760 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009762 return NULL;
9763 }
9764 goto done;
9765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009766 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009767 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009769 }
9770 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009772 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009773 return NULL;
9774 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009775 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009776 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009777 expr_ty a;
9778 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009779 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009780 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009781 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009782 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009783 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009784 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009785 )
9786 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009787 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9789 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009791 return NULL;
9792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009793 int _end_lineno = _token->end_lineno;
9794 UNUSED(_end_lineno); // Only used by EXTRA macro
9795 int _end_col_offset = _token->end_col_offset;
9796 UNUSED(_end_col_offset); // Only used by EXTRA macro
9797 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9798 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009799 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009801 return NULL;
9802 }
9803 goto done;
9804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009805 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009806 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009808 }
9809 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009810 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009811 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009812 return NULL;
9813 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009814 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009815 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009816 expr_ty a;
9817 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009818 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009819 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009820 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009821 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009822 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009823 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009824 )
9825 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009826 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9828 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009829 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009830 return NULL;
9831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009832 int _end_lineno = _token->end_lineno;
9833 UNUSED(_end_lineno); // Only used by EXTRA macro
9834 int _end_col_offset = _token->end_col_offset;
9835 UNUSED(_end_col_offset); // Only used by EXTRA macro
9836 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9837 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009838 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009839 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009840 return NULL;
9841 }
9842 goto done;
9843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009845 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009847 }
9848 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009849 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009850 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009851 return NULL;
9852 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009853 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009854 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009855 expr_ty a;
9856 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009857 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009858 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009859 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009860 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009862 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009863 )
9864 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009865 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9867 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009869 return NULL;
9870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009871 int _end_lineno = _token->end_lineno;
9872 UNUSED(_end_lineno); // Only used by EXTRA macro
9873 int _end_col_offset = _token->end_col_offset;
9874 UNUSED(_end_col_offset); // Only used by EXTRA macro
9875 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9876 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009879 return NULL;
9880 }
9881 goto done;
9882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009884 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009886 }
9887 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009889 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009890 return NULL;
9891 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009892 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009893 expr_ty factor_var;
9894 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009895 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009896 )
9897 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009898 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009899 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009900 goto done;
9901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009902 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009903 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009906 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009907 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009908 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009909 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009910}
9911
9912// factor: '+' factor | '-' factor | '~' factor | power
9913static expr_ty
9914factor_rule(Parser *p)
9915{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009916 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009917 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009919 return NULL;
9920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009921 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009922 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9923 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009924 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009926 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009927 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9928 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009930 return NULL;
9931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009932 int _start_lineno = p->tokens[_mark]->lineno;
9933 UNUSED(_start_lineno); // Only used by EXTRA macro
9934 int _start_col_offset = p->tokens[_mark]->col_offset;
9935 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009936 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009939 return NULL;
9940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009941 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009942 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009943 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009944 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009945 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009946 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009947 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009948 )
9949 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009950 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9952 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009954 return NULL;
9955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009956 int _end_lineno = _token->end_lineno;
9957 UNUSED(_end_lineno); // Only used by EXTRA macro
9958 int _end_col_offset = _token->end_col_offset;
9959 UNUSED(_end_col_offset); // Only used by EXTRA macro
9960 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9961 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009962 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009963 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009964 return NULL;
9965 }
9966 goto done;
9967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009969 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009971 }
9972 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009975 return NULL;
9976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009977 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009978 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009979 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009980 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009981 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009982 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009983 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009984 )
9985 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009986 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9988 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009990 return NULL;
9991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009992 int _end_lineno = _token->end_lineno;
9993 UNUSED(_end_lineno); // Only used by EXTRA macro
9994 int _end_col_offset = _token->end_col_offset;
9995 UNUSED(_end_col_offset); // Only used by EXTRA macro
9996 _res = _Py_UnaryOp ( USub , a , EXTRA );
9997 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009998 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009999 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010000 return NULL;
10001 }
10002 goto done;
10003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010004 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010005 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010007 }
10008 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010009 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010010 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010011 return NULL;
10012 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010013 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010014 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010015 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010016 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010017 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010018 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010019 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010020 )
10021 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010022 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010023 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10024 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010026 return NULL;
10027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010028 int _end_lineno = _token->end_lineno;
10029 UNUSED(_end_lineno); // Only used by EXTRA macro
10030 int _end_col_offset = _token->end_col_offset;
10031 UNUSED(_end_col_offset); // Only used by EXTRA macro
10032 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10033 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010034 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010036 return NULL;
10037 }
10038 goto done;
10039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010040 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010041 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010043 }
10044 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010045 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010046 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010047 return NULL;
10048 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010049 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010050 expr_ty power_var;
10051 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010052 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010053 )
10054 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010055 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010056 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010057 goto done;
10058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010059 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010060 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010062 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010063 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010064 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010065 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010066 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010067 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010068}
10069
10070// power: await_primary '**' factor | await_primary
10071static expr_ty
10072power_rule(Parser *p)
10073{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010074 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010077 return NULL;
10078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010079 expr_ty _res = NULL;
10080 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010081 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10082 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010084 return NULL;
10085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010086 int _start_lineno = p->tokens[_mark]->lineno;
10087 UNUSED(_start_lineno); // Only used by EXTRA macro
10088 int _start_col_offset = p->tokens[_mark]->col_offset;
10089 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010090 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010093 return NULL;
10094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010095 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010096 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010097 expr_ty a;
10098 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010099 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010100 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010101 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010102 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010104 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010105 )
10106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010107 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 +010010108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10109 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010110 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010111 return NULL;
10112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010113 int _end_lineno = _token->end_lineno;
10114 UNUSED(_end_lineno); // Only used by EXTRA macro
10115 int _end_col_offset = _token->end_col_offset;
10116 UNUSED(_end_col_offset); // Only used by EXTRA macro
10117 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10118 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010119 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 }
10123 goto done;
10124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010125 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010126 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010128 }
10129 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010132 return NULL;
10133 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010134 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010135 expr_ty await_primary_var;
10136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010137 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010138 )
10139 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010140 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010141 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010142 goto done;
10143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010144 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010145 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010148 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010149 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010150 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010151 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010152}
10153
10154// await_primary: AWAIT primary | primary
10155static expr_ty
10156await_primary_rule(Parser *p)
10157{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010158 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010159 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010161 return NULL;
10162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010163 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010164 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10165 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010166 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010168 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010169 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10170 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010171 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010172 return NULL;
10173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010174 int _start_lineno = p->tokens[_mark]->lineno;
10175 UNUSED(_start_lineno); // Only used by EXTRA macro
10176 int _start_col_offset = p->tokens[_mark]->col_offset;
10177 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010178 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010180 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010181 return NULL;
10182 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010183 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010184 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010185 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010186 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010187 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010188 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010189 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010190 )
10191 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010192 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 +010010193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10194 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010195 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010196 return NULL;
10197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010198 int _end_lineno = _token->end_lineno;
10199 UNUSED(_end_lineno); // Only used by EXTRA macro
10200 int _end_col_offset = _token->end_col_offset;
10201 UNUSED(_end_col_offset); // Only used by EXTRA macro
10202 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010206 return NULL;
10207 }
10208 goto done;
10209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010211 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010213 }
10214 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010217 return NULL;
10218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010219 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010220 expr_ty primary_var;
10221 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010222 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010223 )
10224 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010225 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010226 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010227 goto done;
10228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010229 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010230 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010232 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010233 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010234 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010235 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010236 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010237 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010238}
10239
10240// Left-recursive
10241// primary:
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020010242// | invalid_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010243// | primary '.' NAME
10244// | primary genexp
10245// | primary '(' arguments? ')'
10246// | primary '[' slices ']'
10247// | atom
10248static expr_ty primary_raw(Parser *);
10249static expr_ty
10250primary_rule(Parser *p)
10251{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010252 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010253 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010254 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10255 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010256 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010258 int _mark = p->mark;
10259 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010261 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010262 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010263 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010264 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010266 p->mark = _mark;
10267 void *_raw = primary_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +020010268 if (p->error_indicator)
10269 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010270 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010271 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010272 _resmark = p->mark;
10273 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010275 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010278}
10279static expr_ty
10280primary_raw(Parser *p)
10281{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010282 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010285 return NULL;
10286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010287 expr_ty _res = NULL;
10288 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010289 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010292 return NULL;
10293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010294 int _start_lineno = p->tokens[_mark]->lineno;
10295 UNUSED(_start_lineno); // Only used by EXTRA macro
10296 int _start_col_offset = p->tokens[_mark]->col_offset;
10297 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020010298 if (p->call_invalid_rules) { // invalid_primary
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020010299 if (p->error_indicator) {
10300 D(p->level--);
10301 return NULL;
10302 }
10303 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10304 void *invalid_primary_var;
10305 if (
10306 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10307 )
10308 {
10309 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10310 _res = invalid_primary_var;
10311 goto done;
10312 }
10313 p->mark = _mark;
10314 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10316 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010317 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010320 return NULL;
10321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010322 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010323 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010324 expr_ty a;
10325 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010326 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010327 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010328 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010329 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010330 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010331 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010332 )
10333 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010334 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010335 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10336 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010338 return NULL;
10339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010340 int _end_lineno = _token->end_lineno;
10341 UNUSED(_end_lineno); // Only used by EXTRA macro
10342 int _end_col_offset = _token->end_col_offset;
10343 UNUSED(_end_col_offset); // Only used by EXTRA macro
10344 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10345 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010346 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010347 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010348 return NULL;
10349 }
10350 goto done;
10351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010353 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010355 }
10356 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010357 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010358 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010359 return NULL;
10360 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010361 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010362 expr_ty a;
10363 expr_ty b;
10364 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010365 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010366 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010367 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010368 )
10369 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010370 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010371 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10372 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010373 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010374 return NULL;
10375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010376 int _end_lineno = _token->end_lineno;
10377 UNUSED(_end_lineno); // Only used by EXTRA macro
10378 int _end_col_offset = _token->end_col_offset;
10379 UNUSED(_end_col_offset); // Only used by EXTRA macro
10380 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10381 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010382 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010384 return NULL;
10385 }
10386 goto done;
10387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010388 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010389 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010391 }
10392 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010394 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010395 return NULL;
10396 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010397 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010398 Token * _literal;
10399 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010400 expr_ty a;
10401 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010402 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010403 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010404 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010405 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010406 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010407 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010408 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010409 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010410 )
10411 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010412 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010413 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10414 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010416 return NULL;
10417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010418 int _end_lineno = _token->end_lineno;
10419 UNUSED(_end_lineno); // Only used by EXTRA macro
10420 int _end_col_offset = _token->end_col_offset;
10421 UNUSED(_end_col_offset); // Only used by EXTRA macro
10422 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10423 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010424 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010426 return NULL;
10427 }
10428 goto done;
10429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010430 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010431 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010433 }
10434 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010435 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010436 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010437 return NULL;
10438 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010439 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010440 Token * _literal;
10441 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010442 expr_ty a;
10443 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010444 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010445 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010446 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010447 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010448 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010449 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010450 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010451 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 )
10453 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010454 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010455 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10456 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010457 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010458 return NULL;
10459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010460 int _end_lineno = _token->end_lineno;
10461 UNUSED(_end_lineno); // Only used by EXTRA macro
10462 int _end_col_offset = _token->end_col_offset;
10463 UNUSED(_end_col_offset); // Only used by EXTRA macro
10464 _res = _Py_Subscript ( a , b , Load , EXTRA );
10465 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010466 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010468 return NULL;
10469 }
10470 goto done;
10471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010472 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010473 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010475 }
10476 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010477 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010478 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010479 return NULL;
10480 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010481 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010482 expr_ty atom_var;
10483 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010484 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010485 )
10486 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010487 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010488 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010489 goto done;
10490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010491 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010492 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010495 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010496 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010497 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010498 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010499}
10500
10501// slices: slice !',' | ','.slice+ ','?
10502static expr_ty
10503slices_rule(Parser *p)
10504{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010505 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010507 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010508 return NULL;
10509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010510 expr_ty _res = NULL;
10511 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010512 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10513 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010515 return NULL;
10516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010517 int _start_lineno = p->tokens[_mark]->lineno;
10518 UNUSED(_start_lineno); // Only used by EXTRA macro
10519 int _start_col_offset = p->tokens[_mark]->col_offset;
10520 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010521 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010522 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010523 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010524 return NULL;
10525 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010526 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010527 expr_ty a;
10528 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010529 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010530 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010531 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010532 )
10533 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010534 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010535 _res = a;
10536 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010537 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010539 return NULL;
10540 }
10541 goto done;
10542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010543 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010544 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010546 }
10547 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010548 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010549 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010550 return NULL;
10551 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010552 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010553 void *_opt_var;
10554 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010555 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010556 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000010557 (a = _gather_92_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010558 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010559 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010560 )
10561 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010562 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10564 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010565 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010566 return NULL;
10567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010568 int _end_lineno = _token->end_lineno;
10569 UNUSED(_end_lineno); // Only used by EXTRA macro
10570 int _end_col_offset = _token->end_col_offset;
10571 UNUSED(_end_col_offset); // Only used by EXTRA macro
10572 _res = _Py_Tuple ( a , Load , EXTRA );
10573 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010574 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010576 return NULL;
10577 }
10578 goto done;
10579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010580 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010581 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010584 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010585 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010586 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010587 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010588}
10589
10590// slice: expression? ':' expression? [':' expression?] | expression
10591static expr_ty
10592slice_rule(Parser *p)
10593{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010594 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010597 return NULL;
10598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010599 expr_ty _res = NULL;
10600 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010601 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10602 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010604 return NULL;
10605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010606 int _start_lineno = p->tokens[_mark]->lineno;
10607 UNUSED(_start_lineno); // Only used by EXTRA macro
10608 int _start_col_offset = p->tokens[_mark]->col_offset;
10609 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010610 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010611 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010612 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010613 return NULL;
10614 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010615 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010616 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010617 void *a;
10618 void *b;
10619 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010620 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010621 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010622 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010623 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010624 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010625 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010626 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000010627 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010628 )
10629 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010630 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 +010010631 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10632 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010633 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010634 return NULL;
10635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010636 int _end_lineno = _token->end_lineno;
10637 UNUSED(_end_lineno); // Only used by EXTRA macro
10638 int _end_col_offset = _token->end_col_offset;
10639 UNUSED(_end_col_offset); // Only used by EXTRA macro
10640 _res = _Py_Slice ( a , b , c , EXTRA );
10641 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010642 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010644 return NULL;
10645 }
10646 goto done;
10647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010648 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010649 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010651 }
10652 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010653 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010654 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010655 return NULL;
10656 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010657 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010658 expr_ty a;
10659 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010660 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010661 )
10662 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010663 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010664 _res = a;
10665 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010666 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010668 return NULL;
10669 }
10670 goto done;
10671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010672 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010673 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010676 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010677 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010678 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010679 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010680}
10681
10682// atom:
10683// | NAME
10684// | 'True'
10685// | 'False'
10686// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010687// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010688// | &STRING strings
10689// | NUMBER
10690// | &'(' (tuple | group | genexp)
10691// | &'[' (list | listcomp)
10692// | &'{' (dict | set | dictcomp | setcomp)
10693// | '...'
10694static expr_ty
10695atom_rule(Parser *p)
10696{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010697 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010698 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010699 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010700 return NULL;
10701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010702 expr_ty _res = NULL;
10703 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010704 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10705 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010707 return NULL;
10708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010709 int _start_lineno = p->tokens[_mark]->lineno;
10710 UNUSED(_start_lineno); // Only used by EXTRA macro
10711 int _start_col_offset = p->tokens[_mark]->col_offset;
10712 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010713 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010716 return NULL;
10717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010718 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010719 expr_ty name_var;
10720 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010721 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010722 )
10723 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010724 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010725 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010726 goto done;
10727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010728 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010729 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010731 }
10732 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010735 return NULL;
10736 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010737 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010738 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010739 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010740 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010741 )
10742 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010743 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10745 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010747 return NULL;
10748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010749 int _end_lineno = _token->end_lineno;
10750 UNUSED(_end_lineno); // Only used by EXTRA macro
10751 int _end_col_offset = _token->end_col_offset;
10752 UNUSED(_end_col_offset); // Only used by EXTRA macro
10753 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10754 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010755 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010757 return NULL;
10758 }
10759 goto done;
10760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010761 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010762 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010764 }
10765 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010766 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010767 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010768 return NULL;
10769 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010770 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010771 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010772 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010773 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010774 )
10775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010776 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10778 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010780 return NULL;
10781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010782 int _end_lineno = _token->end_lineno;
10783 UNUSED(_end_lineno); // Only used by EXTRA macro
10784 int _end_col_offset = _token->end_col_offset;
10785 UNUSED(_end_col_offset); // Only used by EXTRA macro
10786 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10787 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010788 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010790 return NULL;
10791 }
10792 goto done;
10793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010794 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010795 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010797 }
10798 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010801 return NULL;
10802 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010803 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010804 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010805 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010806 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010807 )
10808 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010809 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10811 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010813 return NULL;
10814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010815 int _end_lineno = _token->end_lineno;
10816 UNUSED(_end_lineno); // Only used by EXTRA macro
10817 int _end_col_offset = _token->end_col_offset;
10818 UNUSED(_end_col_offset); // Only used by EXTRA macro
10819 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10820 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010821 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010823 return NULL;
10824 }
10825 goto done;
10826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010827 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010828 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010830 }
Pablo Galindo37824972020-06-11 19:29:13 +010010831 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010833 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010834 return NULL;
10835 }
Pablo Galindo37824972020-06-11 19:29:13 +010010836 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010837 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010838 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010839 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010840 )
10841 {
Pablo Galindo37824972020-06-11 19:29:13 +010010842 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010843 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10844 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010845 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010847 return NULL;
10848 }
10849 goto done;
10850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010851 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010852 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010854 }
10855 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010856 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010857 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010858 return NULL;
10859 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010860 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010861 expr_ty strings_var;
10862 if (
10863 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10864 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010865 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010866 )
10867 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010868 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010869 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010870 goto done;
10871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010872 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010873 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010875 }
10876 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010878 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010879 return NULL;
10880 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010881 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010882 expr_ty number_var;
10883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010884 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010885 )
10886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010887 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010888 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010889 goto done;
10890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010891 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010892 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010894 }
10895 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010896 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010897 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010898 return NULL;
10899 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010900 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000010901 void *_tmp_95_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010902 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010903 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010904 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000010905 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010906 )
10907 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010908 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000010909 _res = _tmp_95_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010910 goto done;
10911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010912 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010913 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010915 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010916 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010917 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010918 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010919 return NULL;
10920 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010921 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000010922 void *_tmp_96_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010923 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010924 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010925 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000010926 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010927 )
10928 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010929 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000010930 _res = _tmp_96_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010931 goto done;
10932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010933 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010934 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010936 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010937 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010939 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010940 return NULL;
10941 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010942 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000010943 void *_tmp_97_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010944 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010945 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010946 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000010947 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010948 )
10949 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010950 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000010951 _res = _tmp_97_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010952 goto done;
10953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010954 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010955 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010957 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010958 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010959 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010960 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010961 return NULL;
10962 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010963 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010964 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010965 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010966 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010967 )
10968 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010969 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010970 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10971 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010972 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010973 return NULL;
10974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010975 int _end_lineno = _token->end_lineno;
10976 UNUSED(_end_lineno); // Only used by EXTRA macro
10977 int _end_col_offset = _token->end_col_offset;
10978 UNUSED(_end_col_offset); // Only used by EXTRA macro
10979 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10980 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010983 return NULL;
10984 }
10985 goto done;
10986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010988 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010991 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010992 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010993 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010994 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010995}
10996
10997// strings: STRING+
10998static expr_ty
10999strings_rule(Parser *p)
11000{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011001 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011003 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011004 return NULL;
11005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011006 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011007 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11008 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011009 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011011 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011012 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011013 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011014 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011015 return NULL;
11016 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011017 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011018 asdl_seq * a;
11019 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000011020 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011021 )
11022 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011023 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011024 _res = _PyPegen_concatenate_strings ( p , a );
11025 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011026 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011028 return NULL;
11029 }
11030 goto done;
11031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011032 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011033 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011036 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011037 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011038 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011039 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011040 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011041}
11042
11043// list: '[' star_named_expressions? ']'
11044static expr_ty
11045list_rule(Parser *p)
11046{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011047 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011049 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011050 return NULL;
11051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011052 expr_ty _res = NULL;
11053 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011054 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11055 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011056 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011057 return NULL;
11058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011059 int _start_lineno = p->tokens[_mark]->lineno;
11060 UNUSED(_start_lineno); // Only used by EXTRA macro
11061 int _start_col_offset = p->tokens[_mark]->col_offset;
11062 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011063 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011065 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011066 return NULL;
11067 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011068 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011069 Token * _literal;
11070 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011071 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011072 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011073 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011074 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011075 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011076 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011077 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011078 )
11079 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011080 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 +010011081 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11082 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011084 return NULL;
11085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011086 int _end_lineno = _token->end_lineno;
11087 UNUSED(_end_lineno); // Only used by EXTRA macro
11088 int _end_col_offset = _token->end_col_offset;
11089 UNUSED(_end_col_offset); // Only used by EXTRA macro
11090 _res = _Py_List ( a , Load , EXTRA );
11091 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011092 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011093 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011094 return NULL;
11095 }
11096 goto done;
11097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011098 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011099 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011102 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011103 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011104 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011105 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011106}
11107
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011108// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011109static expr_ty
11110listcomp_rule(Parser *p)
11111{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011112 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011115 return NULL;
11116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011117 expr_ty _res = NULL;
11118 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011119 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11120 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011122 return NULL;
11123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011124 int _start_lineno = p->tokens[_mark]->lineno;
11125 UNUSED(_start_lineno); // Only used by EXTRA macro
11126 int _start_col_offset = p->tokens[_mark]->col_offset;
11127 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011128 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011131 return NULL;
11132 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011133 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11134 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011135 Token * _literal;
11136 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011137 expr_ty a;
11138 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011139 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011140 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011141 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011142 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011143 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011144 (_cut_var = 1)
11145 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011146 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011147 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011148 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011149 )
11150 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011151 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 +010011152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11153 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011155 return NULL;
11156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011157 int _end_lineno = _token->end_lineno;
11158 UNUSED(_end_lineno); // Only used by EXTRA macro
11159 int _end_col_offset = _token->end_col_offset;
11160 UNUSED(_end_col_offset); // Only used by EXTRA macro
11161 _res = _Py_ListComp ( a , b , EXTRA );
11162 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011163 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011165 return NULL;
11166 }
11167 goto done;
11168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011170 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11172 if (_cut_var) {
11173 D(p->level--);
11174 return NULL;
11175 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011176 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011177 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011178 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011179 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011180 return NULL;
11181 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011182 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011183 void *invalid_comprehension_var;
11184 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011185 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011186 )
11187 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011188 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011189 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011190 goto done;
11191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011192 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011193 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011196 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011197 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011198 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011199 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011200}
11201
11202// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11203static expr_ty
11204tuple_rule(Parser *p)
11205{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011206 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011208 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011209 return NULL;
11210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011211 expr_ty _res = NULL;
11212 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011213 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11214 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011215 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011216 return NULL;
11217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011218 int _start_lineno = p->tokens[_mark]->lineno;
11219 UNUSED(_start_lineno); // Only used by EXTRA macro
11220 int _start_col_offset = p->tokens[_mark]->col_offset;
11221 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011222 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011225 return NULL;
11226 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011227 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 +010011228 Token * _literal;
11229 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011230 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011231 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011232 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011233 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000011234 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011235 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011236 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011237 )
11238 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011239 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 +010011240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11241 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011243 return NULL;
11244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011245 int _end_lineno = _token->end_lineno;
11246 UNUSED(_end_lineno); // Only used by EXTRA macro
11247 int _end_col_offset = _token->end_col_offset;
11248 UNUSED(_end_col_offset); // Only used by EXTRA macro
11249 _res = _Py_Tuple ( a , Load , EXTRA );
11250 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011251 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011253 return NULL;
11254 }
11255 goto done;
11256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011257 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011258 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011261 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011262 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011263 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011264 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011265}
11266
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011267// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011268static expr_ty
11269group_rule(Parser *p)
11270{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011271 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011272 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011274 return NULL;
11275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011276 expr_ty _res = NULL;
11277 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011278 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011281 return NULL;
11282 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011283 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 +010011284 Token * _literal;
11285 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011286 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011287 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011288 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011289 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000011290 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011291 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011292 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011293 )
11294 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011295 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 +010011296 _res = a;
11297 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011298 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011300 return NULL;
11301 }
11302 goto done;
11303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011304 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011305 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011307 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011308 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011309 if (p->error_indicator) {
11310 D(p->level--);
11311 return NULL;
11312 }
11313 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11314 void *invalid_group_var;
11315 if (
11316 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11317 )
11318 {
11319 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11320 _res = invalid_group_var;
11321 goto done;
11322 }
11323 p->mark = _mark;
11324 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011327 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011328 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011329 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011330 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011331}
11332
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011333// genexp: '(' named_expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011334static expr_ty
11335genexp_rule(Parser *p)
11336{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011337 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011340 return NULL;
11341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011342 expr_ty _res = NULL;
11343 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11345 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011346 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011347 return NULL;
11348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011349 int _start_lineno = p->tokens[_mark]->lineno;
11350 UNUSED(_start_lineno); // Only used by EXTRA macro
11351 int _start_col_offset = p->tokens[_mark]->col_offset;
11352 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011353 { // '(' named_expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011355 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011356 return NULL;
11357 }
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011358 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011359 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011360 Token * _literal;
11361 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011362 expr_ty a;
11363 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011364 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011365 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011366 &&
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011367 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011368 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011369 (_cut_var = 1)
11370 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011371 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011372 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011373 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011374 )
11375 {
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011376 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11378 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011379 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011380 return NULL;
11381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011382 int _end_lineno = _token->end_lineno;
11383 UNUSED(_end_lineno); // Only used by EXTRA macro
11384 int _end_col_offset = _token->end_col_offset;
11385 UNUSED(_end_col_offset); // Only used by EXTRA macro
11386 _res = _Py_GeneratorExp ( a , b , EXTRA );
11387 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011388 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011389 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011390 return NULL;
11391 }
11392 goto done;
11393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011394 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011395 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2b800ef2020-11-17 01:38:58 +020011396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011397 if (_cut_var) {
11398 D(p->level--);
11399 return NULL;
11400 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011401 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011402 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011405 return NULL;
11406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011407 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011408 void *invalid_comprehension_var;
11409 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011410 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011411 )
11412 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011413 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011414 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011415 goto done;
11416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011417 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011418 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011421 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011422 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011423 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011424 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011425}
11426
Pablo Galindo87c87b52020-11-18 23:44:30 +000011427// set: '{' star_named_expressions '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011428static expr_ty
11429set_rule(Parser *p)
11430{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011431 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011434 return NULL;
11435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011436 expr_ty _res = NULL;
11437 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011438 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011441 return NULL;
11442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011443 int _start_lineno = p->tokens[_mark]->lineno;
11444 UNUSED(_start_lineno); // Only used by EXTRA macro
11445 int _start_col_offset = p->tokens[_mark]->col_offset;
11446 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo87c87b52020-11-18 23:44:30 +000011447 { // '{' star_named_expressions '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011450 return NULL;
11451 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000011452 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011453 Token * _literal;
11454 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011455 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011456 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011457 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011458 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000011459 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011460 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011461 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011462 )
11463 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000011464 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11466 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011468 return NULL;
11469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011470 int _end_lineno = _token->end_lineno;
11471 UNUSED(_end_lineno); // Only used by EXTRA macro
11472 int _end_col_offset = _token->end_col_offset;
11473 UNUSED(_end_col_offset); // Only used by EXTRA macro
11474 _res = _Py_Set ( a , EXTRA );
11475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011476 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011478 return NULL;
11479 }
11480 goto done;
11481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011483 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000011484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011486 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011487 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011489 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011490}
11491
Pablo Galindo87c87b52020-11-18 23:44:30 +000011492// setcomp: '{' named_expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011493static expr_ty
11494setcomp_rule(Parser *p)
11495{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011496 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011497 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011498 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011499 return NULL;
11500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011501 expr_ty _res = NULL;
11502 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11504 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011506 return NULL;
11507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011508 int _start_lineno = p->tokens[_mark]->lineno;
11509 UNUSED(_start_lineno); // Only used by EXTRA macro
11510 int _start_col_offset = p->tokens[_mark]->col_offset;
11511 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo87c87b52020-11-18 23:44:30 +000011512 { // '{' named_expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011513 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011514 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011515 return NULL;
11516 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000011517 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011518 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011519 Token * _literal;
11520 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011521 expr_ty a;
11522 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011523 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011524 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011525 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000011526 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011527 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011528 (_cut_var = 1)
11529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011530 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011531 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011532 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011533 )
11534 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000011535 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11537 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011539 return NULL;
11540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011541 int _end_lineno = _token->end_lineno;
11542 UNUSED(_end_lineno); // Only used by EXTRA macro
11543 int _end_col_offset = _token->end_col_offset;
11544 UNUSED(_end_col_offset); // Only used by EXTRA macro
11545 _res = _Py_SetComp ( a , b , EXTRA );
11546 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011547 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011549 return NULL;
11550 }
11551 goto done;
11552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011554 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000011555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011556 if (_cut_var) {
11557 D(p->level--);
11558 return NULL;
11559 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011560 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011561 if (p->call_invalid_rules) { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011564 return NULL;
11565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011566 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011567 void *invalid_comprehension_var;
11568 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011569 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011570 )
11571 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011572 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011573 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011574 goto done;
11575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011576 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011577 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011580 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011581 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011582 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011583 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011584}
11585
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011586// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011587static expr_ty
11588dict_rule(Parser *p)
11589{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011590 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011591 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011593 return NULL;
11594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011595 expr_ty _res = NULL;
11596 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011597 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011600 return NULL;
11601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011602 int _start_lineno = p->tokens[_mark]->lineno;
11603 UNUSED(_start_lineno); // Only used by EXTRA macro
11604 int _start_col_offset = p->tokens[_mark]->col_offset;
11605 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011606 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011608 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011609 return NULL;
11610 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011611 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011612 Token * _literal;
11613 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011614 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011615 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011616 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011617 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011618 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011619 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011620 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011621 )
11622 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011623 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 +010011624 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11625 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011626 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011627 return NULL;
11628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011629 int _end_lineno = _token->end_lineno;
11630 UNUSED(_end_lineno); // Only used by EXTRA macro
11631 int _end_col_offset = _token->end_col_offset;
11632 UNUSED(_end_col_offset); // Only used by EXTRA macro
11633 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11634 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011637 return NULL;
11638 }
11639 goto done;
11640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011641 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011642 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011645 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011646 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011647 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011648 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011649}
11650
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011651// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011652static expr_ty
11653dictcomp_rule(Parser *p)
11654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011658 return NULL;
11659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011660 expr_ty _res = NULL;
11661 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011665 return NULL;
11666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011667 int _start_lineno = p->tokens[_mark]->lineno;
11668 UNUSED(_start_lineno); // Only used by EXTRA macro
11669 int _start_col_offset = p->tokens[_mark]->col_offset;
11670 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011671 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011674 return NULL;
11675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011676 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 +010011677 Token * _literal;
11678 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011679 KeyValuePair* a;
11680 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011681 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011682 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011683 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011684 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011685 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011686 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011687 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011688 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011689 )
11690 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011691 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 +010011692 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11693 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011694 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011695 return NULL;
11696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011697 int _end_lineno = _token->end_lineno;
11698 UNUSED(_end_lineno); // Only used by EXTRA macro
11699 int _end_col_offset = _token->end_col_offset;
11700 UNUSED(_end_col_offset); // Only used by EXTRA macro
11701 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11702 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011703 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011705 return NULL;
11706 }
11707 goto done;
11708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011710 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011712 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020011713 if (p->call_invalid_rules) { // invalid_dict_comprehension
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011715 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011716 return NULL;
11717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011718 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 -070011719 void *invalid_dict_comprehension_var;
11720 if (
11721 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11722 )
11723 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011724 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 -070011725 _res = invalid_dict_comprehension_var;
11726 goto done;
11727 }
11728 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011729 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011732 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011733 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011734 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011735 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011736}
11737
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011738// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011739static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011740double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011741{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011742 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011745 return NULL;
11746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011747 asdl_seq* _res = NULL;
11748 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011749 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011751 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011752 return NULL;
11753 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011754 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 +010011755 void *_opt_var;
11756 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011757 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011758 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000011759 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011760 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011761 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011762 )
11763 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011764 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 +010011765 _res = a;
11766 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011767 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011769 return NULL;
11770 }
11771 goto done;
11772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011773 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011774 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011777 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011778 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011779 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011780 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011781}
11782
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011783// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011784static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011785double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011786{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011787 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011790 return NULL;
11791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011792 KeyValuePair* _res = NULL;
11793 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011796 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011797 return NULL;
11798 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011799 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 +010011800 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011801 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011802 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011803 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011804 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011805 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011806 )
11807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011808 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 +010011809 _res = _PyPegen_key_value_pair ( p , NULL , a );
11810 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011811 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011813 return NULL;
11814 }
11815 goto done;
11816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011818 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011820 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011821 { // kvpair
11822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011823 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011824 return NULL;
11825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011826 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 -070011827 KeyValuePair* kvpair_var;
11828 if (
11829 (kvpair_var = kvpair_rule(p)) // kvpair
11830 )
11831 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011832 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 -070011833 _res = kvpair_var;
11834 goto done;
11835 }
11836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011837 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011839 }
11840 _res = NULL;
11841 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011842 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011843 return _res;
11844}
11845
11846// kvpair: expression ':' expression
11847static KeyValuePair*
11848kvpair_rule(Parser *p)
11849{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011850 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011852 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011853 return NULL;
11854 }
11855 KeyValuePair* _res = NULL;
11856 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011857 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011859 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011860 return NULL;
11861 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011862 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011863 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011864 expr_ty a;
11865 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011866 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011867 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011868 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011869 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011870 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011871 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011872 )
11873 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011874 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011875 _res = _PyPegen_key_value_pair ( p , a , b );
11876 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011879 return NULL;
11880 }
11881 goto done;
11882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011884 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011887 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011888 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011889 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011890 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011891}
11892
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011893// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011894static asdl_seq*
11895for_if_clauses_rule(Parser *p)
11896{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011897 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011900 return NULL;
11901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011902 asdl_seq* _res = NULL;
11903 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011904 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011907 return NULL;
11908 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011909 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000011910 asdl_seq * _loop1_103_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011911 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000011912 (_loop1_103_var = _loop1_103_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011913 )
11914 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011915 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000011916 _res = _loop1_103_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011917 goto done;
11918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011919 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011920 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011923 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011924 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011925 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011926 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011927}
11928
11929// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011930// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11931// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11932// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011933static comprehension_ty
11934for_if_clause_rule(Parser *p)
11935{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011936 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011938 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011939 return NULL;
11940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011941 comprehension_ty _res = NULL;
11942 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011943 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011946 return NULL;
11947 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011948 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11949 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011950 Token * _keyword;
11951 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011952 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011953 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011954 expr_ty b;
11955 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011956 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011957 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011958 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011959 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011961 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011962 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011963 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011964 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011965 (_cut_var = 1)
11966 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011967 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000011969 (c = _loop0_104_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011970 )
11971 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011972 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 +010011973 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11974 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011975 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011976 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011977 return NULL;
11978 }
11979 goto done;
11980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011981 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011982 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11984 if (_cut_var) {
11985 D(p->level--);
11986 return NULL;
11987 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011988 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011989 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011992 return NULL;
11993 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011994 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11995 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011996 Token * _keyword;
11997 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011998 expr_ty a;
11999 expr_ty b;
12000 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012001 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012002 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012004 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012005 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012006 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012007 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012008 (_cut_var = 1)
12009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012010 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012011 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000012012 (c = _loop0_105_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012013 )
12014 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012015 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 +010012016 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12017 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012018 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012020 return NULL;
12021 }
12022 goto done;
12023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012024 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012025 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12027 if (_cut_var) {
12028 D(p->level--);
12029 return NULL;
12030 }
12031 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012032 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012033 if (p->error_indicator) {
12034 D(p->level--);
12035 return NULL;
12036 }
12037 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12038 void *invalid_for_target_var;
12039 if (
12040 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12041 )
12042 {
12043 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12044 _res = invalid_for_target_var;
12045 goto done;
12046 }
12047 p->mark = _mark;
12048 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012051 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012052 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012053 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012054 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012055}
12056
12057// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12058static expr_ty
12059yield_expr_rule(Parser *p)
12060{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012061 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012062 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012064 return NULL;
12065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012066 expr_ty _res = NULL;
12067 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012068 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12069 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012070 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012071 return NULL;
12072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012073 int _start_lineno = p->tokens[_mark]->lineno;
12074 UNUSED(_start_lineno); // Only used by EXTRA macro
12075 int _start_col_offset = p->tokens[_mark]->col_offset;
12076 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012077 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012078 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012079 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012080 return NULL;
12081 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012082 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 +010012083 Token * _keyword;
12084 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012085 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012086 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012087 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012088 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012089 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012090 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012091 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012092 )
12093 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012094 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 +010012095 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12096 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012098 return NULL;
12099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012100 int _end_lineno = _token->end_lineno;
12101 UNUSED(_end_lineno); // Only used by EXTRA macro
12102 int _end_col_offset = _token->end_col_offset;
12103 UNUSED(_end_col_offset); // Only used by EXTRA macro
12104 _res = _Py_YieldFrom ( a , EXTRA );
12105 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012106 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012107 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012108 return NULL;
12109 }
12110 goto done;
12111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012112 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012113 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012115 }
12116 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012119 return NULL;
12120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012121 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 +010012122 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012123 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012124 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012125 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012126 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012127 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012128 )
12129 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012130 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 +010012131 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12132 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012133 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012134 return NULL;
12135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012136 int _end_lineno = _token->end_lineno;
12137 UNUSED(_end_lineno); // Only used by EXTRA macro
12138 int _end_col_offset = _token->end_col_offset;
12139 UNUSED(_end_col_offset); // Only used by EXTRA macro
12140 _res = _Py_Yield ( a , EXTRA );
12141 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012142 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012143 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012144 return NULL;
12145 }
12146 goto done;
12147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012148 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012149 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012152 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012153 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012154 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012155 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012156}
12157
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012158// arguments: args ','? &')' | invalid_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012159static expr_ty
12160arguments_rule(Parser *p)
12161{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012162 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012163 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012165 return NULL;
12166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012167 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012168 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12169 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012170 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012172 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012173 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012176 return NULL;
12177 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012178 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012179 void *_opt_var;
12180 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012181 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012182 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012183 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012184 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012185 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012186 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012187 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012188 )
12189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012190 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012191 _res = a;
12192 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012193 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012195 return NULL;
12196 }
12197 goto done;
12198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012199 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012200 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012202 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012203 if (p->call_invalid_rules) { // invalid_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012205 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012206 return NULL;
12207 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012208 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12209 void *invalid_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012210 if (
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012211 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012212 )
12213 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012214 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12215 _res = invalid_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012216 goto done;
12217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012218 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012219 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012222 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012223 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012224 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012225 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012226 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012227}
12228
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012229// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012230static expr_ty
12231args_rule(Parser *p)
12232{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012233 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012234 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012236 return NULL;
12237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012238 expr_ty _res = NULL;
12239 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012240 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12241 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012243 return NULL;
12244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012245 int _start_lineno = p->tokens[_mark]->lineno;
12246 UNUSED(_start_lineno); // Only used by EXTRA macro
12247 int _start_col_offset = p->tokens[_mark]->col_offset;
12248 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012249 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012250 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012251 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012252 return NULL;
12253 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012254 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
12255 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012256 void *b;
12257 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000012258 (a = _gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012259 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000012260 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012261 )
12262 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012263 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 +010012264 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12265 if (_token == NULL) {
12266 D(p->level--);
12267 return NULL;
12268 }
12269 int _end_lineno = _token->end_lineno;
12270 UNUSED(_end_lineno); // Only used by EXTRA macro
12271 int _end_col_offset = _token->end_col_offset;
12272 UNUSED(_end_col_offset); // Only used by EXTRA macro
12273 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012274 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012275 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012277 return NULL;
12278 }
12279 goto done;
12280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012281 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012282 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012284 }
12285 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012288 return NULL;
12289 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012290 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012291 asdl_seq* a;
12292 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012293 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012294 )
12295 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012296 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12298 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012300 return NULL;
12301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012302 int _end_lineno = _token->end_lineno;
12303 UNUSED(_end_lineno); // Only used by EXTRA macro
12304 int _end_col_offset = _token->end_col_offset;
12305 UNUSED(_end_col_offset); // Only used by EXTRA macro
12306 _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 );
12307 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012308 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012310 return NULL;
12311 }
12312 goto done;
12313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012315 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012318 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012319 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012320 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012321 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012322}
12323
12324// kwargs:
12325// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12326// | ','.kwarg_or_starred+
12327// | ','.kwarg_or_double_starred+
12328static asdl_seq*
12329kwargs_rule(Parser *p)
12330{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012331 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012332 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012333 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012334 return NULL;
12335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012336 asdl_seq* _res = NULL;
12337 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012338 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012340 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012341 return NULL;
12342 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012343 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 +010012344 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012345 asdl_seq * a;
12346 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012347 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000012348 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012349 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012350 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012351 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000012352 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012353 )
12354 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012355 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 +010012356 _res = _PyPegen_join_sequences ( p , a , b );
12357 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012358 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012359 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012360 return NULL;
12361 }
12362 goto done;
12363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012364 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012365 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012367 }
12368 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012369 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012370 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012371 return NULL;
12372 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012373 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000012374 asdl_seq * _gather_113_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012375 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000012376 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012377 )
12378 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012379 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000012380 _res = _gather_113_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012381 goto done;
12382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012383 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012384 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012386 }
12387 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012388 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012389 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012390 return NULL;
12391 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012392 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000012393 asdl_seq * _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012394 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000012395 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012396 )
12397 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012398 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000012399 _res = _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012400 goto done;
12401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012402 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012403 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012406 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012407 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012408 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012409 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012410}
12411
12412// starred_expression: '*' expression
12413static expr_ty
12414starred_expression_rule(Parser *p)
12415{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012416 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012417 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012418 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012419 return NULL;
12420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012421 expr_ty _res = NULL;
12422 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12424 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012426 return NULL;
12427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012428 int _start_lineno = p->tokens[_mark]->lineno;
12429 UNUSED(_start_lineno); // Only used by EXTRA macro
12430 int _start_col_offset = p->tokens[_mark]->col_offset;
12431 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012432 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012434 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012435 return NULL;
12436 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012437 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012438 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012439 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012440 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012441 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012442 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012443 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012444 )
12445 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012446 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012447 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12448 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012450 return NULL;
12451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012452 int _end_lineno = _token->end_lineno;
12453 UNUSED(_end_lineno); // Only used by EXTRA macro
12454 int _end_col_offset = _token->end_col_offset;
12455 UNUSED(_end_col_offset); // Only used by EXTRA macro
12456 _res = _Py_Starred ( a , Load , EXTRA );
12457 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012458 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012460 return NULL;
12461 }
12462 goto done;
12463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012464 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012465 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012468 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012469 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012470 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012471 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012472}
12473
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012474// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012475static KeywordOrStarred*
12476kwarg_or_starred_rule(Parser *p)
12477{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012478 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012480 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012481 return NULL;
12482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012483 KeywordOrStarred* _res = NULL;
12484 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012485 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12486 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012488 return NULL;
12489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012490 int _start_lineno = p->tokens[_mark]->lineno;
12491 UNUSED(_start_lineno); // Only used by EXTRA macro
12492 int _start_col_offset = p->tokens[_mark]->col_offset;
12493 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012494 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012495 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012496 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012497 return NULL;
12498 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012499 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 +010012500 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012501 expr_ty a;
12502 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012503 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012504 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012505 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012506 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012507 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012508 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012509 )
12510 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012511 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 +010012512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12513 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012515 return NULL;
12516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012517 int _end_lineno = _token->end_lineno;
12518 UNUSED(_end_lineno); // Only used by EXTRA macro
12519 int _end_col_offset = _token->end_col_offset;
12520 UNUSED(_end_col_offset); // Only used by EXTRA macro
12521 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12522 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012523 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012525 return NULL;
12526 }
12527 goto done;
12528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012529 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012530 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012532 }
12533 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012534 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012535 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012536 return NULL;
12537 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012538 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 +010012539 expr_ty a;
12540 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012541 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012542 )
12543 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012544 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 +010012545 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12546 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012547 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012549 return NULL;
12550 }
12551 goto done;
12552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012554 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012556 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012557 if (p->call_invalid_rules) { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012559 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012560 return NULL;
12561 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012562 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 +030012563 void *invalid_kwarg_var;
12564 if (
12565 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12566 )
12567 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012568 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 +010012569 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012570 goto done;
12571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012572 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012573 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012576 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012577 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012578 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012579 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012580}
12581
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012582// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012583static KeywordOrStarred*
12584kwarg_or_double_starred_rule(Parser *p)
12585{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012586 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012587 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012588 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012589 return NULL;
12590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012591 KeywordOrStarred* _res = NULL;
12592 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012593 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12594 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012596 return NULL;
12597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012598 int _start_lineno = p->tokens[_mark]->lineno;
12599 UNUSED(_start_lineno); // Only used by EXTRA macro
12600 int _start_col_offset = p->tokens[_mark]->col_offset;
12601 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012602 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012605 return NULL;
12606 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012607 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 +010012608 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012609 expr_ty a;
12610 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012611 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012612 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012613 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012614 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012616 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012617 )
12618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012619 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 +010012620 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12621 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012623 return NULL;
12624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012625 int _end_lineno = _token->end_lineno;
12626 UNUSED(_end_lineno); // Only used by EXTRA macro
12627 int _end_col_offset = _token->end_col_offset;
12628 UNUSED(_end_col_offset); // Only used by EXTRA macro
12629 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12630 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012633 return NULL;
12634 }
12635 goto done;
12636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012637 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012638 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012640 }
12641 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012644 return NULL;
12645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012646 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 +010012647 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012648 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012649 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012650 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012651 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012652 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012653 )
12654 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012655 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 +010012656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12657 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012658 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012659 return NULL;
12660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012661 int _end_lineno = _token->end_lineno;
12662 UNUSED(_end_lineno); // Only used by EXTRA macro
12663 int _end_col_offset = _token->end_col_offset;
12664 UNUSED(_end_col_offset); // Only used by EXTRA macro
12665 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12666 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012669 return NULL;
12670 }
12671 goto done;
12672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012673 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012674 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012676 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020012677 if (p->call_invalid_rules) { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012678 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012679 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012680 return NULL;
12681 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012682 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 +030012683 void *invalid_kwarg_var;
12684 if (
12685 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12686 )
12687 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012688 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 +010012689 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012690 goto done;
12691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012692 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012693 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012696 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012697 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012698 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012699 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012700}
12701
12702// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12703static expr_ty
12704star_targets_rule(Parser *p)
12705{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012706 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012709 return NULL;
12710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012711 expr_ty _res = NULL;
12712 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012713 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12714 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012716 return NULL;
12717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012718 int _start_lineno = p->tokens[_mark]->lineno;
12719 UNUSED(_start_lineno); // Only used by EXTRA macro
12720 int _start_col_offset = p->tokens[_mark]->col_offset;
12721 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012722 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012725 return NULL;
12726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012727 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012728 expr_ty a;
12729 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012730 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012731 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012732 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012733 )
12734 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012735 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 +010012736 _res = a;
12737 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012738 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012739 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012740 return NULL;
12741 }
12742 goto done;
12743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012744 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012745 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012747 }
12748 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012751 return NULL;
12752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012753 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 +010012754 void *_opt_var;
12755 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012756 expr_ty a;
12757 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012758 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012759 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012760 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000012761 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012762 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012763 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012764 )
12765 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012766 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 +010012767 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12768 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012770 return NULL;
12771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012772 int _end_lineno = _token->end_lineno;
12773 UNUSED(_end_lineno); // Only used by EXTRA macro
12774 int _end_col_offset = _token->end_col_offset;
12775 UNUSED(_end_col_offset); // Only used by EXTRA macro
12776 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12777 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012780 return NULL;
12781 }
12782 goto done;
12783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012784 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012785 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012788 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012789 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012790 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012791 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012792}
12793
12794// star_targets_seq: ','.star_target+ ','?
12795static asdl_seq*
12796star_targets_seq_rule(Parser *p)
12797{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012798 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012801 return NULL;
12802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012803 asdl_seq* _res = NULL;
12804 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012805 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012807 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012808 return NULL;
12809 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012810 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 +010012811 void *_opt_var;
12812 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012813 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012814 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000012815 (a = _gather_118_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012816 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012817 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012818 )
12819 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012820 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 +010012821 _res = a;
12822 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012823 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012825 return NULL;
12826 }
12827 goto done;
12828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012829 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012830 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012833 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012834 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012835 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012836 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012837}
12838
12839// star_target:
12840// | '*' (!'*' star_target)
12841// | t_primary '.' NAME !t_lookahead
12842// | t_primary '[' slices ']' !t_lookahead
12843// | star_atom
12844static expr_ty
12845star_target_rule(Parser *p)
12846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012847 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012850 return NULL;
12851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012852 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012853 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12854 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012855 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012857 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012858 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12859 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012861 return NULL;
12862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012863 int _start_lineno = p->tokens[_mark]->lineno;
12864 UNUSED(_start_lineno); // Only used by EXTRA macro
12865 int _start_col_offset = p->tokens[_mark]->col_offset;
12866 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012867 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012870 return NULL;
12871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012872 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012873 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012874 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012875 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012876 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012877 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000012878 (a = _tmp_120_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012879 )
12880 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012881 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 +010012882 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12883 if (_token == NULL) {
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 int _end_lineno = _token->end_lineno;
12888 UNUSED(_end_lineno); // Only used by EXTRA macro
12889 int _end_col_offset = _token->end_col_offset;
12890 UNUSED(_end_col_offset); // Only used by EXTRA macro
12891 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12892 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012893 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012895 return NULL;
12896 }
12897 goto done;
12898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012899 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012900 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012902 }
12903 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012905 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012906 return NULL;
12907 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012908 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 +010012909 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012910 expr_ty a;
12911 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012912 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012913 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012914 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012915 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012916 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012917 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012918 &&
12919 _PyPegen_lookahead(0, t_lookahead_rule, p)
12920 )
12921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012922 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 +010012923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12924 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012925 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012926 return NULL;
12927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012928 int _end_lineno = _token->end_lineno;
12929 UNUSED(_end_lineno); // Only used by EXTRA macro
12930 int _end_col_offset = _token->end_col_offset;
12931 UNUSED(_end_col_offset); // Only used by EXTRA macro
12932 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12933 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012934 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012936 return NULL;
12937 }
12938 goto done;
12939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012941 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012943 }
12944 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012946 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012947 return NULL;
12948 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012949 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 +010012950 Token * _literal;
12951 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012952 expr_ty a;
12953 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012954 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012955 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012956 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012957 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012958 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012959 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012960 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012961 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012962 &&
12963 _PyPegen_lookahead(0, t_lookahead_rule, p)
12964 )
12965 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012966 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 +010012967 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12968 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012969 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012970 return NULL;
12971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012972 int _end_lineno = _token->end_lineno;
12973 UNUSED(_end_lineno); // Only used by EXTRA macro
12974 int _end_col_offset = _token->end_col_offset;
12975 UNUSED(_end_col_offset); // Only used by EXTRA macro
12976 _res = _Py_Subscript ( a , b , Store , EXTRA );
12977 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012978 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012980 return NULL;
12981 }
12982 goto done;
12983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012984 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012985 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012987 }
12988 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012990 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012991 return NULL;
12992 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012993 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012994 expr_ty star_atom_var;
12995 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012996 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012997 )
12998 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012999 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 +010013000 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013001 goto done;
13002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013003 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013004 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013007 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013008 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013009 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013010 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013011 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013012}
13013
13014// star_atom:
13015// | NAME
13016// | '(' star_target ')'
13017// | '(' star_targets_seq? ')'
13018// | '[' star_targets_seq? ']'
13019static expr_ty
13020star_atom_rule(Parser *p)
13021{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013022 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013025 return NULL;
13026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013027 expr_ty _res = NULL;
13028 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013029 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13030 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013032 return NULL;
13033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013034 int _start_lineno = p->tokens[_mark]->lineno;
13035 UNUSED(_start_lineno); // Only used by EXTRA macro
13036 int _start_col_offset = p->tokens[_mark]->col_offset;
13037 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013038 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013040 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013041 return NULL;
13042 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013043 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013044 expr_ty a;
13045 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013046 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013047 )
13048 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013049 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013050 _res = _PyPegen_set_expr_context ( p , a , Store );
13051 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013052 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013054 return NULL;
13055 }
13056 goto done;
13057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013058 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013059 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013061 }
13062 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013063 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013064 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013065 return NULL;
13066 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013067 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013068 Token * _literal;
13069 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013070 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013071 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013072 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013073 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013074 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013075 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013076 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013077 )
13078 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013079 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 +010013080 _res = _PyPegen_set_expr_context ( p , a , Store );
13081 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013082 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013084 return NULL;
13085 }
13086 goto done;
13087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013088 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013089 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013091 }
13092 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013093 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013094 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013095 return NULL;
13096 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013097 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 +010013098 Token * _literal;
13099 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013100 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013101 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013102 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013104 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013105 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013106 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013107 )
13108 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013109 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 +010013110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13111 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013112 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013113 return NULL;
13114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013115 int _end_lineno = _token->end_lineno;
13116 UNUSED(_end_lineno); // Only used by EXTRA macro
13117 int _end_col_offset = _token->end_col_offset;
13118 UNUSED(_end_col_offset); // Only used by EXTRA macro
13119 _res = _Py_Tuple ( a , Store , EXTRA );
13120 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013121 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013122 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013123 return NULL;
13124 }
13125 goto done;
13126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013127 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013128 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013130 }
13131 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013132 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013133 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013134 return NULL;
13135 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013136 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 +010013137 Token * _literal;
13138 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013139 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013140 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013141 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013142 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013143 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013144 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013145 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013146 )
13147 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013148 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 +010013149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13150 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013152 return NULL;
13153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013154 int _end_lineno = _token->end_lineno;
13155 UNUSED(_end_lineno); // Only used by EXTRA macro
13156 int _end_col_offset = _token->end_col_offset;
13157 UNUSED(_end_col_offset); // Only used by EXTRA macro
13158 _res = _Py_List ( a , Store , EXTRA );
13159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013162 return NULL;
13163 }
13164 goto done;
13165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013167 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013170 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013171 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013172 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013173 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013174}
13175
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013176// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013177static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013178single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013179{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013180 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013182 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013183 return NULL;
13184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013185 expr_ty _res = NULL;
13186 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013187 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013190 return NULL;
13191 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013192 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 +030013193 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013194 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013195 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013196 )
13197 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013198 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 +030013199 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013200 goto done;
13201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013202 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013203 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013205 }
13206 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013208 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013209 return NULL;
13210 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013211 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013212 expr_ty a;
13213 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013214 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013215 )
13216 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013217 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013218 _res = _PyPegen_set_expr_context ( p , a , Store );
13219 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013220 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013222 return NULL;
13223 }
13224 goto done;
13225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013226 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013227 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013229 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013230 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013232 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013233 return NULL;
13234 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013235 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013236 Token * _literal;
13237 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013238 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013239 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013240 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013241 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013242 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013243 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013244 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013245 )
13246 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013247 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 +010013248 _res = a;
13249 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013250 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013251 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013252 return NULL;
13253 }
13254 goto done;
13255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013256 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013257 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013260 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013261 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013262 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013263 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013264}
13265
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013266// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013267// | t_primary '.' NAME !t_lookahead
13268// | t_primary '[' slices ']' !t_lookahead
13269static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013270single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013271{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013272 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013273 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013275 return NULL;
13276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013277 expr_ty _res = NULL;
13278 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013279 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13280 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013282 return NULL;
13283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013284 int _start_lineno = p->tokens[_mark]->lineno;
13285 UNUSED(_start_lineno); // Only used by EXTRA macro
13286 int _start_col_offset = p->tokens[_mark]->col_offset;
13287 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013288 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013290 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013291 return NULL;
13292 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013293 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 +010013294 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013295 expr_ty a;
13296 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013297 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013298 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013299 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013300 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013301 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013302 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013303 &&
13304 _PyPegen_lookahead(0, t_lookahead_rule, p)
13305 )
13306 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013307 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 +010013308 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13309 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013310 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013311 return NULL;
13312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013313 int _end_lineno = _token->end_lineno;
13314 UNUSED(_end_lineno); // Only used by EXTRA macro
13315 int _end_col_offset = _token->end_col_offset;
13316 UNUSED(_end_col_offset); // Only used by EXTRA macro
13317 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13318 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013319 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013321 return NULL;
13322 }
13323 goto done;
13324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013325 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013326 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013328 }
13329 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013331 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013332 return NULL;
13333 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013334 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 +010013335 Token * _literal;
13336 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013337 expr_ty a;
13338 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013339 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013340 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013341 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013342 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013343 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013344 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013345 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013346 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013347 &&
13348 _PyPegen_lookahead(0, t_lookahead_rule, p)
13349 )
13350 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013351 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 +010013352 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13353 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013354 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013355 return NULL;
13356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013357 int _end_lineno = _token->end_lineno;
13358 UNUSED(_end_lineno); // Only used by EXTRA macro
13359 int _end_col_offset = _token->end_col_offset;
13360 UNUSED(_end_col_offset); // Only used by EXTRA macro
13361 _res = _Py_Subscript ( a , b , Store , EXTRA );
13362 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013363 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013364 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013365 return NULL;
13366 }
13367 goto done;
13368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013369 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013370 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013373 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013374 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013375 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013376 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013377}
13378
13379// del_targets: ','.del_target+ ','?
13380static asdl_seq*
13381del_targets_rule(Parser *p)
13382{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013383 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013386 return NULL;
13387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013388 asdl_seq* _res = NULL;
13389 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013390 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013392 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013393 return NULL;
13394 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013395 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013396 void *_opt_var;
13397 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013398 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013399 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000013400 (a = _gather_121_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013401 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013402 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013403 )
13404 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013405 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 +010013406 _res = a;
13407 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013408 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013409 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013410 return NULL;
13411 }
13412 goto done;
13413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013414 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013415 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013418 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013419 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013420 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013421 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013422}
13423
13424// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013425// | t_primary '.' NAME !t_lookahead
13426// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013427// | del_t_atom
13428static expr_ty
13429del_target_rule(Parser *p)
13430{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013431 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013434 return NULL;
13435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013436 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013437 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13438 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013439 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013441 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013442 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13443 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013447 int _start_lineno = p->tokens[_mark]->lineno;
13448 UNUSED(_start_lineno); // Only used by EXTRA macro
13449 int _start_col_offset = p->tokens[_mark]->col_offset;
13450 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013451 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013453 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013454 return NULL;
13455 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013456 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 +010013457 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013458 expr_ty a;
13459 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013460 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013461 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013462 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013463 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013465 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013466 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013467 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013468 )
13469 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013470 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 +010013471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13472 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013474 return NULL;
13475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013476 int _end_lineno = _token->end_lineno;
13477 UNUSED(_end_lineno); // Only used by EXTRA macro
13478 int _end_col_offset = _token->end_col_offset;
13479 UNUSED(_end_col_offset); // Only used by EXTRA macro
13480 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13481 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013482 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013484 return NULL;
13485 }
13486 goto done;
13487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013489 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013491 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013492 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013494 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013495 return NULL;
13496 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013497 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 +010013498 Token * _literal;
13499 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013500 expr_ty a;
13501 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013502 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013503 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013505 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013506 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013507 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013508 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013509 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013510 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013511 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013512 )
13513 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013514 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 +010013515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13516 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013517 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013518 return NULL;
13519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013520 int _end_lineno = _token->end_lineno;
13521 UNUSED(_end_lineno); // Only used by EXTRA macro
13522 int _end_col_offset = _token->end_col_offset;
13523 UNUSED(_end_col_offset); // Only used by EXTRA macro
13524 _res = _Py_Subscript ( a , b , Del , EXTRA );
13525 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013526 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013527 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013528 return NULL;
13529 }
13530 goto done;
13531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013532 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013533 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013535 }
13536 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013538 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013539 return NULL;
13540 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013541 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 +010013542 expr_ty del_t_atom_var;
13543 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013544 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013545 )
13546 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013547 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 +010013548 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013549 goto done;
13550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013551 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013552 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013555 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013556 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013557 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013558 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013559 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013560}
13561
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013562// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013563static expr_ty
13564del_t_atom_rule(Parser *p)
13565{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013566 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013567 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013569 return NULL;
13570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013571 expr_ty _res = NULL;
13572 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13574 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013576 return NULL;
13577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013578 int _start_lineno = p->tokens[_mark]->lineno;
13579 UNUSED(_start_lineno); // Only used by EXTRA macro
13580 int _start_col_offset = p->tokens[_mark]->col_offset;
13581 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013582 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013584 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013585 return NULL;
13586 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013587 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013588 expr_ty a;
13589 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013590 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013591 )
13592 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013593 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 +010013594 _res = _PyPegen_set_expr_context ( p , a , Del );
13595 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013596 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013598 return NULL;
13599 }
13600 goto done;
13601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013602 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013603 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013605 }
13606 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013608 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013609 return NULL;
13610 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013611 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 +010013612 Token * _literal;
13613 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013614 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013615 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013616 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013618 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013619 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013620 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013621 )
13622 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013623 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 +010013624 _res = _PyPegen_set_expr_context ( p , a , Del );
13625 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013626 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013627 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013628 return NULL;
13629 }
13630 goto done;
13631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013632 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013633 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013635 }
13636 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013638 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013639 return NULL;
13640 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013641 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 +010013642 Token * _literal;
13643 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013644 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013645 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013646 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013647 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013648 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013649 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013650 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013651 )
13652 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013653 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 +010013654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13655 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013657 return NULL;
13658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013659 int _end_lineno = _token->end_lineno;
13660 UNUSED(_end_lineno); // Only used by EXTRA macro
13661 int _end_col_offset = _token->end_col_offset;
13662 UNUSED(_end_col_offset); // Only used by EXTRA macro
13663 _res = _Py_Tuple ( a , Del , EXTRA );
13664 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013665 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013667 return NULL;
13668 }
13669 goto done;
13670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013671 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013672 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013674 }
13675 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013678 return NULL;
13679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013680 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 +010013681 Token * _literal;
13682 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013683 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013684 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013685 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013686 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013687 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013688 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013689 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013690 )
13691 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013692 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 +010013693 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13694 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013696 return NULL;
13697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013698 int _end_lineno = _token->end_lineno;
13699 UNUSED(_end_lineno); // Only used by EXTRA macro
13700 int _end_col_offset = _token->end_col_offset;
13701 UNUSED(_end_col_offset); // Only used by EXTRA macro
13702 _res = _Py_List ( a , Del , EXTRA );
13703 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013704 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013706 return NULL;
13707 }
13708 goto done;
13709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013710 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013711 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013714 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013715 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013716 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013717 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013718}
13719
13720// targets: ','.target+ ','?
13721static asdl_seq*
13722targets_rule(Parser *p)
13723{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013724 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013727 return NULL;
13728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013729 asdl_seq* _res = NULL;
13730 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013731 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013733 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013734 return NULL;
13735 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013736 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013737 void *_opt_var;
13738 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013739 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013740 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000013741 (a = _gather_123_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013742 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013743 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013744 )
13745 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013746 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013747 _res = a;
13748 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013749 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013751 return NULL;
13752 }
13753 goto done;
13754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013755 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013756 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013759 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013760 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013761 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013762 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013763}
13764
13765// target:
13766// | t_primary '.' NAME !t_lookahead
13767// | t_primary '[' slices ']' !t_lookahead
13768// | t_atom
13769static expr_ty
13770target_rule(Parser *p)
13771{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013772 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013773 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013774 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013775 return NULL;
13776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013777 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013778 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13779 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013780 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013782 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013783 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13784 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013788 int _start_lineno = p->tokens[_mark]->lineno;
13789 UNUSED(_start_lineno); // Only used by EXTRA macro
13790 int _start_col_offset = p->tokens[_mark]->col_offset;
13791 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013792 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013794 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013795 return NULL;
13796 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013797 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 +010013798 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013799 expr_ty a;
13800 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013801 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013802 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013803 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013804 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013806 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013807 &&
13808 _PyPegen_lookahead(0, t_lookahead_rule, p)
13809 )
13810 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013811 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 +010013812 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13813 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013815 return NULL;
13816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013817 int _end_lineno = _token->end_lineno;
13818 UNUSED(_end_lineno); // Only used by EXTRA macro
13819 int _end_col_offset = _token->end_col_offset;
13820 UNUSED(_end_col_offset); // Only used by EXTRA macro
13821 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13822 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013823 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013825 return NULL;
13826 }
13827 goto done;
13828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013829 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013830 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013832 }
13833 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013835 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013836 return NULL;
13837 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013838 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 +010013839 Token * _literal;
13840 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013841 expr_ty a;
13842 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013843 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013844 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013845 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013846 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013848 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013849 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013850 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013851 &&
13852 _PyPegen_lookahead(0, t_lookahead_rule, p)
13853 )
13854 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013855 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 +010013856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13857 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013858 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013859 return NULL;
13860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013861 int _end_lineno = _token->end_lineno;
13862 UNUSED(_end_lineno); // Only used by EXTRA macro
13863 int _end_col_offset = _token->end_col_offset;
13864 UNUSED(_end_col_offset); // Only used by EXTRA macro
13865 _res = _Py_Subscript ( a , b , Store , EXTRA );
13866 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013867 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013869 return NULL;
13870 }
13871 goto done;
13872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013873 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013874 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013876 }
13877 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013879 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013880 return NULL;
13881 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013882 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 expr_ty t_atom_var;
13884 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013885 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013886 )
13887 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013888 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013889 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013890 goto done;
13891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013892 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013893 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013896 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013897 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013898 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013899 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013900 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013901}
13902
13903// Left-recursive
13904// t_primary:
13905// | t_primary '.' NAME &t_lookahead
13906// | t_primary '[' slices ']' &t_lookahead
13907// | t_primary genexp &t_lookahead
13908// | t_primary '(' arguments? ')' &t_lookahead
13909// | atom &t_lookahead
13910static expr_ty t_primary_raw(Parser *);
13911static expr_ty
13912t_primary_rule(Parser *p)
13913{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013914 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013915 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013916 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13917 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013918 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013920 int _mark = p->mark;
13921 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013922 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013923 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013924 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013925 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013926 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013928 p->mark = _mark;
13929 void *_raw = t_primary_raw(p);
Lysandros Nikolaoucfcb9522020-10-31 21:06:03 +020013930 if (p->error_indicator)
13931 return NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013932 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013933 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013934 _resmark = p->mark;
13935 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013937 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013938 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013939 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013940}
13941static expr_ty
13942t_primary_raw(Parser *p)
13943{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013944 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013947 return NULL;
13948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013949 expr_ty _res = NULL;
13950 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013951 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13952 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013954 return NULL;
13955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013956 int _start_lineno = p->tokens[_mark]->lineno;
13957 UNUSED(_start_lineno); // Only used by EXTRA macro
13958 int _start_col_offset = p->tokens[_mark]->col_offset;
13959 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013960 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013961 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013962 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013963 return NULL;
13964 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013965 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 +010013966 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013967 expr_ty a;
13968 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013969 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013970 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013971 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013972 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013974 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013975 &&
13976 _PyPegen_lookahead(1, t_lookahead_rule, p)
13977 )
13978 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013979 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 +010013980 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13981 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013983 return NULL;
13984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013985 int _end_lineno = _token->end_lineno;
13986 UNUSED(_end_lineno); // Only used by EXTRA macro
13987 int _end_col_offset = _token->end_col_offset;
13988 UNUSED(_end_col_offset); // Only used by EXTRA macro
13989 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
13990 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013991 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013992 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013993 return NULL;
13994 }
13995 goto done;
13996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013997 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013998 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014000 }
14001 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014003 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014004 return NULL;
14005 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014006 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 +010014007 Token * _literal;
14008 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014009 expr_ty a;
14010 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014011 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014012 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014013 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014014 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014015 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014016 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014017 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014018 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014019 &&
14020 _PyPegen_lookahead(1, t_lookahead_rule, p)
14021 )
14022 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014023 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 +010014024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14025 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014026 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014027 return NULL;
14028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014029 int _end_lineno = _token->end_lineno;
14030 UNUSED(_end_lineno); // Only used by EXTRA macro
14031 int _end_col_offset = _token->end_col_offset;
14032 UNUSED(_end_col_offset); // Only used by EXTRA macro
14033 _res = _Py_Subscript ( a , b , Load , EXTRA );
14034 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014035 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014036 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014037 return NULL;
14038 }
14039 goto done;
14040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014041 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014042 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014044 }
14045 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014047 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014048 return NULL;
14049 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014050 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 +010014051 expr_ty a;
14052 expr_ty b;
14053 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014054 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014055 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014056 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014057 &&
14058 _PyPegen_lookahead(1, t_lookahead_rule, p)
14059 )
14060 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014061 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 +010014062 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14063 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014064 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014065 return NULL;
14066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014067 int _end_lineno = _token->end_lineno;
14068 UNUSED(_end_lineno); // Only used by EXTRA macro
14069 int _end_col_offset = _token->end_col_offset;
14070 UNUSED(_end_col_offset); // Only used by EXTRA macro
14071 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14072 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014073 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014075 return NULL;
14076 }
14077 goto done;
14078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014079 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014080 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014082 }
14083 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014086 return NULL;
14087 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014088 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 +010014089 Token * _literal;
14090 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014091 expr_ty a;
14092 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014093 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014094 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014095 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014096 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014097 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014098 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014099 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014100 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014101 &&
14102 _PyPegen_lookahead(1, t_lookahead_rule, p)
14103 )
14104 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014105 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 +010014106 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14107 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014108 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014109 return NULL;
14110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014111 int _end_lineno = _token->end_lineno;
14112 UNUSED(_end_lineno); // Only used by EXTRA macro
14113 int _end_col_offset = _token->end_col_offset;
14114 UNUSED(_end_col_offset); // Only used by EXTRA macro
14115 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14116 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014117 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014119 return NULL;
14120 }
14121 goto done;
14122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014123 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014124 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014126 }
14127 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014130 return NULL;
14131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014132 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 +010014133 expr_ty a;
14134 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014135 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014136 &&
14137 _PyPegen_lookahead(1, t_lookahead_rule, p)
14138 )
14139 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014140 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 +010014141 _res = a;
14142 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014143 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014144 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014145 return NULL;
14146 }
14147 goto done;
14148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014149 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014150 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014153 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014154 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014155 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014156 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014157}
14158
14159// t_lookahead: '(' | '[' | '.'
14160static void *
14161t_lookahead_rule(Parser *p)
14162{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014163 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014164 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014166 return NULL;
14167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014168 void * _res = NULL;
14169 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014170 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014173 return NULL;
14174 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014175 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014176 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014177 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014178 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014179 )
14180 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014181 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014182 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014183 goto done;
14184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014185 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014186 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014188 }
14189 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014190 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014191 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014192 return NULL;
14193 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014194 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014195 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014196 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014197 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014198 )
14199 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014200 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014201 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014202 goto done;
14203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014204 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014205 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014207 }
14208 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014210 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014211 return NULL;
14212 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014213 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014214 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014215 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014216 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014217 )
14218 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014219 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014220 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014221 goto done;
14222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014223 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014224 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014227 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014228 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014229 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014230 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014231}
14232
14233// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14234static expr_ty
14235t_atom_rule(Parser *p)
14236{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014237 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014240 return NULL;
14241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014242 expr_ty _res = NULL;
14243 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014244 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014247 return NULL;
14248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014249 int _start_lineno = p->tokens[_mark]->lineno;
14250 UNUSED(_start_lineno); // Only used by EXTRA macro
14251 int _start_col_offset = p->tokens[_mark]->col_offset;
14252 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014253 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014255 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014256 return NULL;
14257 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014258 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014259 expr_ty a;
14260 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014261 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014262 )
14263 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014264 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014265 _res = _PyPegen_set_expr_context ( p , a , Store );
14266 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014267 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014268 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014269 return NULL;
14270 }
14271 goto done;
14272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014273 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014274 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014276 }
14277 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014278 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014279 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014280 return NULL;
14281 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014282 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014283 Token * _literal;
14284 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014285 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014286 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014287 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014288 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014289 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014290 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014291 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014292 )
14293 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014294 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014295 _res = _PyPegen_set_expr_context ( p , a , Store );
14296 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014297 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014298 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014299 return NULL;
14300 }
14301 goto done;
14302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014303 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014304 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014306 }
14307 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014309 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014310 return NULL;
14311 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014312 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014313 Token * _literal;
14314 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014315 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014316 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014317 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014318 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014319 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014320 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014321 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014322 )
14323 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014324 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014325 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14326 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014327 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014328 return NULL;
14329 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014330 int _end_lineno = _token->end_lineno;
14331 UNUSED(_end_lineno); // Only used by EXTRA macro
14332 int _end_col_offset = _token->end_col_offset;
14333 UNUSED(_end_col_offset); // Only used by EXTRA macro
14334 _res = _Py_Tuple ( b , Store , EXTRA );
14335 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014336 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014338 return NULL;
14339 }
14340 goto done;
14341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014342 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014343 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014345 }
14346 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014349 return NULL;
14350 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014351 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014352 Token * _literal;
14353 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014354 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014355 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014356 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014357 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014358 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014359 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014360 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014361 )
14362 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014363 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014364 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14365 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014366 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014367 return NULL;
14368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014369 int _end_lineno = _token->end_lineno;
14370 UNUSED(_end_lineno); // Only used by EXTRA macro
14371 int _end_col_offset = _token->end_col_offset;
14372 UNUSED(_end_col_offset); // Only used by EXTRA macro
14373 _res = _Py_List ( b , Store , EXTRA );
14374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014377 return NULL;
14378 }
14379 goto done;
14380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014382 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014385 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014386 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014387 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014388 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014389}
14390
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014391// invalid_arguments:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014392// | args ',' '*'
14393// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014394// | args for_if_clauses
14395// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014396// | args ',' args
14397static void *
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014398invalid_arguments_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014399{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014400 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014402 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014403 return NULL;
14404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014405 void * _res = NULL;
14406 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014407 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014410 return NULL;
14411 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014412 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014413 Token * _literal;
14414 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014415 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014416 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014417 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014418 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014419 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014420 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014421 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014422 )
14423 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014424 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014425 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14426 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014427 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014429 return NULL;
14430 }
14431 goto done;
14432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014433 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014434 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014436 }
14437 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014440 return NULL;
14441 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014442 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 +010014443 Token * _literal;
14444 void *_opt_var;
14445 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014446 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014447 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014448 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014449 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014450 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014451 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014452 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014453 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014454 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000014455 (_opt_var = _tmp_125_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014456 )
14457 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014458 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 +030014459 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014460 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014461 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014462 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014463 return NULL;
14464 }
14465 goto done;
14466 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014467 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014468 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014470 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014471 { // args for_if_clauses
14472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014473 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014474 return NULL;
14475 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014476 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 -070014477 expr_ty a;
14478 asdl_seq* for_if_clauses_var;
14479 if (
14480 (a = args_rule(p)) // args
14481 &&
14482 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14483 )
14484 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014485 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 -070014486 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14487 if (_res == NULL && PyErr_Occurred()) {
14488 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014489 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014490 return NULL;
14491 }
14492 goto done;
14493 }
14494 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014495 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014497 }
14498 { // args ',' expression for_if_clauses
14499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014500 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014501 return NULL;
14502 }
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014503 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 -070014504 Token * _literal;
14505 expr_ty a;
14506 expr_ty args_var;
14507 asdl_seq* for_if_clauses_var;
14508 if (
14509 (args_var = args_rule(p)) // args
14510 &&
14511 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14512 &&
14513 (a = expression_rule(p)) // expression
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 ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014519 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
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 ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014530 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014531 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014533 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014534 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 ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014537 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014538 expr_ty a;
14539 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014540 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014541 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014542 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014543 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014544 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014545 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014546 )
14547 {
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014548 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 +010014549 _res = _PyPegen_arguments_parsing_error ( p , a );
14550 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014551 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014553 return NULL;
14554 }
14555 goto done;
14556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014557 p->mark = _mark;
Lysandros Nikolaou24a7c292020-10-28 02:14:15 +020014558 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014561 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014562 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014563 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014564 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014565}
14566
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014567// invalid_kwarg: expression '='
14568static void *
14569invalid_kwarg_rule(Parser *p)
14570{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014571 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014573 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014574 return NULL;
14575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014576 void * _res = NULL;
14577 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014578 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014580 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014581 return NULL;
14582 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014583 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014584 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014585 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014586 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014587 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014588 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014589 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014590 )
14591 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014592 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014593 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014594 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014596 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014597 return NULL;
14598 }
14599 goto done;
14600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014601 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014602 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014605 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014606 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014607 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014608 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014609}
14610
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014611// invalid_named_expression: expression ':=' expression
14612static void *
14613invalid_named_expression_rule(Parser *p)
14614{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014615 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014616 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014617 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014618 return NULL;
14619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014620 void * _res = NULL;
14621 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014622 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014624 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014625 return NULL;
14626 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014627 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 +010014628 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014629 expr_ty a;
14630 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014631 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014632 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014633 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014634 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014635 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014636 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014637 )
14638 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014639 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 +030014640 _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 +010014641 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014642 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014644 return NULL;
14645 }
14646 goto done;
14647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014648 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014649 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014652 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014653 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014654 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014655 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014656}
14657
14658// invalid_assignment:
Pablo Galindo102ca522020-06-28 00:40:41 +010014659// | invalid_ann_assign_target ':' expression
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014660// | star_named_expression ',' star_named_expressions* ':' expression
14661// | expression ':' expression
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014662// | ((star_targets '='))* star_expressions '='
14663// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014664// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014665static void *
14666invalid_assignment_rule(Parser *p)
14667{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014668 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014671 return NULL;
14672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014673 void * _res = NULL;
14674 int _mark = p->mark;
Pablo Galindo102ca522020-06-28 00:40:41 +010014675 { // invalid_ann_assign_target ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014678 return NULL;
14679 }
Pablo Galindo102ca522020-06-28 00:40:41 +010014680 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 +010014681 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014682 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014683 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014684 if (
Pablo Galindo102ca522020-06-28 00:40:41 +010014685 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014686 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014687 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014688 &&
14689 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014690 )
14691 {
Pablo Galindo102ca522020-06-28 00:40:41 +010014692 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14693 _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 +010014694 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014695 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014697 return NULL;
14698 }
14699 goto done;
14700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014701 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014702 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo102ca522020-06-28 00:40:41 +010014703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014704 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014705 { // star_named_expression ',' star_named_expressions* ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014707 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014708 return NULL;
14709 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014710 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 +030014711 Token * _literal;
14712 Token * _literal_1;
Pablo Galindo87c87b52020-11-18 23:44:30 +000014713 asdl_seq * _loop0_126_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014714 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014715 expr_ty expression_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014716 if (
14717 (a = star_named_expression_rule(p)) // star_named_expression
14718 &&
14719 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14720 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000014721 (_loop0_126_var = _loop0_126_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014722 &&
14723 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014724 &&
14725 (expression_var = expression_rule(p)) // expression
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014726 )
14727 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014728 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 +030014729 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014730 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014731 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014732 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014733 return NULL;
14734 }
14735 goto done;
14736 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014737 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014738 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014740 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014741 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014743 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014744 return NULL;
14745 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014746 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014747 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014748 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014749 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014750 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014751 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014752 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014753 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014754 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014755 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014756 )
14757 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014758 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 +030014759 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014760 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014761 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014763 return NULL;
14764 }
14765 goto done;
14766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014768 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014770 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014771 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014774 return NULL;
14775 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014776 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 +010014777 Token * _literal;
Pablo Galindo87c87b52020-11-18 23:44:30 +000014778 asdl_seq * _loop0_127_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014779 expr_ty a;
14780 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000014781 (_loop0_127_var = _loop0_127_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014782 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014783 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014784 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014785 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014786 )
14787 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014788 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 +030014789 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014790 if (_res == NULL && PyErr_Occurred()) {
14791 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014792 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014793 return NULL;
14794 }
14795 goto done;
14796 }
14797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014798 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14800 }
14801 { // ((star_targets '='))* yield_expr '='
14802 if (p->error_indicator) {
14803 D(p->level--);
14804 return NULL;
14805 }
14806 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14807 Token * _literal;
Pablo Galindo87c87b52020-11-18 23:44:30 +000014808 asdl_seq * _loop0_128_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014809 expr_ty a;
14810 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000014811 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014812 &&
14813 (a = yield_expr_rule(p)) // yield_expr
14814 &&
14815 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14816 )
14817 {
14818 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14819 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14820 if (_res == NULL && PyErr_Occurred()) {
14821 p->error_indicator = 1;
14822 D(p->level--);
14823 return NULL;
14824 }
14825 goto done;
14826 }
14827 p->mark = _mark;
14828 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014830 }
14831 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014833 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014834 return NULL;
14835 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014836 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000014837 void *_tmp_129_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014838 expr_ty a;
14839 AugOperator* augassign_var;
14840 if (
14841 (a = star_expressions_rule(p)) // star_expressions
14842 &&
14843 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014844 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000014845 (_tmp_129_var = _tmp_129_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014846 )
14847 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014848 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 +010014849 _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 +010014850 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014851 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014853 return NULL;
14854 }
14855 goto done;
14856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014857 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014858 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014861 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014862 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014863 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014864 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014865}
14866
Pablo Galindo102ca522020-06-28 00:40:41 +010014867// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14868static expr_ty
14869invalid_ann_assign_target_rule(Parser *p)
14870{
14871 D(p->level++);
14872 if (p->error_indicator) {
14873 D(p->level--);
14874 return NULL;
14875 }
14876 expr_ty _res = NULL;
14877 int _mark = p->mark;
14878 { // list
14879 if (p->error_indicator) {
14880 D(p->level--);
14881 return NULL;
14882 }
14883 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14884 expr_ty list_var;
14885 if (
14886 (list_var = list_rule(p)) // list
14887 )
14888 {
14889 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14890 _res = list_var;
14891 goto done;
14892 }
14893 p->mark = _mark;
14894 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14896 }
14897 { // tuple
14898 if (p->error_indicator) {
14899 D(p->level--);
14900 return NULL;
14901 }
14902 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14903 expr_ty tuple_var;
14904 if (
14905 (tuple_var = tuple_rule(p)) // tuple
14906 )
14907 {
14908 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
14909 _res = tuple_var;
14910 goto done;
14911 }
14912 p->mark = _mark;
14913 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
14915 }
14916 { // '(' invalid_ann_assign_target ')'
14917 if (p->error_indicator) {
14918 D(p->level--);
14919 return NULL;
14920 }
14921 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14922 Token * _literal;
14923 Token * _literal_1;
14924 expr_ty a;
14925 if (
14926 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14927 &&
14928 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
14929 &&
14930 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14931 )
14932 {
14933 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14934 _res = a;
14935 if (_res == NULL && PyErr_Occurred()) {
14936 p->error_indicator = 1;
14937 D(p->level--);
14938 return NULL;
14939 }
14940 goto done;
14941 }
14942 p->mark = _mark;
14943 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14945 }
14946 _res = NULL;
14947 done:
14948 D(p->level--);
14949 return _res;
14950}
14951
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014952// invalid_del_stmt: 'del' star_expressions
14953static void *
14954invalid_del_stmt_rule(Parser *p)
14955{
14956 D(p->level++);
14957 if (p->error_indicator) {
14958 D(p->level--);
14959 return NULL;
14960 }
14961 void * _res = NULL;
14962 int _mark = p->mark;
14963 { // 'del' star_expressions
14964 if (p->error_indicator) {
14965 D(p->level--);
14966 return NULL;
14967 }
14968 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
14969 Token * _keyword;
14970 expr_ty a;
14971 if (
14972 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
14973 &&
14974 (a = star_expressions_rule(p)) // star_expressions
14975 )
14976 {
14977 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 +030014978 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014979 if (_res == NULL && PyErr_Occurred()) {
14980 p->error_indicator = 1;
14981 D(p->level--);
14982 return NULL;
14983 }
14984 goto done;
14985 }
14986 p->mark = _mark;
14987 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
14988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
14989 }
14990 _res = NULL;
14991 done:
14992 D(p->level--);
14993 return _res;
14994}
14995
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014996// invalid_block: NEWLINE !INDENT
14997static void *
14998invalid_block_rule(Parser *p)
14999{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015000 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015002 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015003 return NULL;
15004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015005 void * _res = NULL;
15006 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015007 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015009 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015010 return NULL;
15011 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015012 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015013 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015014 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015015 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015016 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015017 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015018 )
15019 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015020 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 +010015021 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15022 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015023 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015025 return NULL;
15026 }
15027 goto done;
15028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015029 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015030 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015033 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015034 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015035 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015036 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015037}
15038
Lysandros Nikolaouc4b58ce2020-10-28 00:38:42 +020015039// Left-recursive
15040// invalid_primary: primary '{'
15041static void *
15042invalid_primary_rule(Parser *p)
15043{
15044 D(p->level++);
15045 if (p->error_indicator) {
15046 D(p->level--);
15047 return NULL;
15048 }
15049 void * _res = NULL;
15050 int _mark = p->mark;
15051 { // primary '{'
15052 if (p->error_indicator) {
15053 D(p->level--);
15054 return NULL;
15055 }
15056 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15057 Token * a;
15058 expr_ty primary_var;
15059 if (
15060 (primary_var = primary_rule(p)) // primary
15061 &&
15062 (a = _PyPegen_expect_token(p, 25)) // token='{'
15063 )
15064 {
15065 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15066 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15067 if (_res == NULL && PyErr_Occurred()) {
15068 p->error_indicator = 1;
15069 D(p->level--);
15070 return NULL;
15071 }
15072 goto done;
15073 }
15074 p->mark = _mark;
15075 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15077 }
15078 _res = NULL;
15079 done:
15080 D(p->level--);
15081 return _res;
15082}
15083
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015084// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015085static void *
15086invalid_comprehension_rule(Parser *p)
15087{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015088 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015090 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015091 return NULL;
15092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015093 void * _res = NULL;
15094 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015095 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015098 return NULL;
15099 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015100 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000015101 void *_tmp_130_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015102 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015103 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015104 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000015105 (_tmp_130_var = _tmp_130_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015106 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015107 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015108 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015109 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015110 )
15111 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015112 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 +030015113 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015114 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015115 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015116 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015117 return NULL;
15118 }
15119 goto done;
15120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015121 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015122 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015125 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015126 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015127 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015128 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015129}
15130
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015131// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15132static void *
15133invalid_dict_comprehension_rule(Parser *p)
15134{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015135 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015137 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015138 return NULL;
15139 }
15140 void * _res = NULL;
15141 int _mark = p->mark;
15142 { // '{' '**' bitwise_or for_if_clauses '}'
15143 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015144 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015145 return NULL;
15146 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015147 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 -070015148 Token * _literal;
15149 Token * _literal_1;
15150 Token * a;
15151 expr_ty bitwise_or_var;
15152 asdl_seq* for_if_clauses_var;
15153 if (
15154 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15155 &&
15156 (a = _PyPegen_expect_token(p, 35)) // token='**'
15157 &&
15158 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15159 &&
15160 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15161 &&
15162 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15163 )
15164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015165 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 -070015166 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15167 if (_res == NULL && PyErr_Occurred()) {
15168 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015169 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015170 return NULL;
15171 }
15172 goto done;
15173 }
15174 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015175 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015177 }
15178 _res = NULL;
15179 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015180 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015181 return _res;
15182}
15183
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015184// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015185// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015186static void *
15187invalid_parameters_rule(Parser *p)
15188{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015189 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015190 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015191 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015192 return NULL;
15193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015194 void * _res = NULL;
15195 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015196 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015198 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015199 return NULL;
15200 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015201 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 Galindo87c87b52020-11-18 23:44:30 +000015202 asdl_seq * _loop0_131_var;
15203 void *_tmp_132_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015204 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015205 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000015206 (_loop0_131_var = _loop0_131_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015207 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000015208 (_tmp_132_var = _tmp_132_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015209 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015210 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015211 )
15212 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015213 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 +010015214 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15215 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015216 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015218 return NULL;
15219 }
15220 goto done;
15221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015222 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015223 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15224 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 +010015225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015226 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015227 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015228 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015229 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015230}
15231
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015232// invalid_lambda_parameters:
15233// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15234static void *
15235invalid_lambda_parameters_rule(Parser *p)
15236{
15237 D(p->level++);
15238 if (p->error_indicator) {
15239 D(p->level--);
15240 return NULL;
15241 }
15242 void * _res = NULL;
15243 int _mark = p->mark;
15244 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15245 if (p->error_indicator) {
15246 D(p->level--);
15247 return NULL;
15248 }
15249 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 Galindo87c87b52020-11-18 23:44:30 +000015250 asdl_seq * _loop0_133_var;
15251 void *_tmp_134_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015252 arg_ty lambda_param_no_default_var;
15253 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000015254 (_loop0_133_var = _loop0_133_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015255 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000015256 (_tmp_134_var = _tmp_134_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015257 &&
15258 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15259 )
15260 {
15261 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"));
15262 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15263 if (_res == NULL && PyErr_Occurred()) {
15264 p->error_indicator = 1;
15265 D(p->level--);
15266 return NULL;
15267 }
15268 goto done;
15269 }
15270 p->mark = _mark;
15271 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15273 }
15274 _res = NULL;
15275 done:
15276 D(p->level--);
15277 return _res;
15278}
15279
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015280// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015281static void *
15282invalid_star_etc_rule(Parser *p)
15283{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015284 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015286 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015287 return NULL;
15288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015289 void * _res = NULL;
15290 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015291 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015294 return NULL;
15295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015296 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015297 Token * _literal;
Pablo Galindo87c87b52020-11-18 23:44:30 +000015298 void *_tmp_135_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015299 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015300 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015301 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000015302 (_tmp_135_var = _tmp_135_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015303 )
15304 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015305 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015306 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15307 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015308 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015309 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015310 return NULL;
15311 }
15312 goto done;
15313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015315 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015317 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015318 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015319 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015320 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015321 return NULL;
15322 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015323 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 +030015324 Token * _literal;
15325 Token * _literal_1;
15326 Token * type_comment_var;
15327 if (
15328 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15329 &&
15330 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15331 &&
15332 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15333 )
15334 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015335 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 +030015336 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15337 if (_res == NULL && PyErr_Occurred()) {
15338 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015339 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015340 return NULL;
15341 }
15342 goto done;
15343 }
15344 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015345 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015348 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015349 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015350 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015351 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015352}
15353
15354// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15355static void *
15356invalid_lambda_star_etc_rule(Parser *p)
15357{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015358 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015359 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015360 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015361 return NULL;
15362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015363 void * _res = NULL;
15364 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015365 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015368 return NULL;
15369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015370 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015371 Token * _literal;
Pablo Galindo87c87b52020-11-18 23:44:30 +000015372 void *_tmp_136_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015373 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015374 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015375 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000015376 (_tmp_136_var = _tmp_136_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015377 )
15378 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015379 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 +010015380 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15381 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015382 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015383 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015384 return NULL;
15385 }
15386 goto done;
15387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015388 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015389 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015391 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015392 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015393 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015394 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015395 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015396}
15397
Guido van Rossumc001c092020-04-30 12:12:19 -070015398// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15399static void *
15400invalid_double_type_comments_rule(Parser *p)
15401{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015402 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015404 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015405 return NULL;
15406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015407 void * _res = NULL;
15408 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015409 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015411 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015412 return NULL;
15413 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015414 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 +010015415 Token * indent_var;
15416 Token * newline_var;
15417 Token * newline_var_1;
15418 Token * type_comment_var;
15419 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015420 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015421 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015422 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015423 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015424 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015425 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015426 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015427 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015428 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015429 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015430 )
15431 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015432 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 +010015433 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15434 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015435 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015436 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015437 return NULL;
15438 }
15439 goto done;
15440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015441 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015442 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015445 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015446 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015447 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015448 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015449}
15450
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015451// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015452static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015453invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015454{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015455 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015457 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015458 return NULL;
15459 }
15460 void * _res = NULL;
15461 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015462 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015463 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015464 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015465 return NULL;
15466 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015467 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15468 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015469 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015470 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015471 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015472 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015473 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015474 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15475 &&
15476 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015477 )
15478 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015479 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 +030015480 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Shantanu27c0d9b2020-05-11 14:53:58 -070015481 if (_res == NULL && PyErr_Occurred()) {
15482 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015483 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015484 return NULL;
15485 }
15486 goto done;
15487 }
15488 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015489 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15491 }
15492 _res = NULL;
15493 done:
15494 D(p->level--);
15495 return _res;
15496}
15497
15498// invalid_for_target: ASYNC? 'for' star_expressions
15499static void *
15500invalid_for_target_rule(Parser *p)
15501{
15502 D(p->level++);
15503 if (p->error_indicator) {
15504 D(p->level--);
15505 return NULL;
15506 }
15507 void * _res = NULL;
15508 int _mark = p->mark;
15509 { // ASYNC? 'for' star_expressions
15510 if (p->error_indicator) {
15511 D(p->level--);
15512 return NULL;
15513 }
15514 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15515 Token * _keyword;
15516 void *_opt_var;
15517 UNUSED(_opt_var); // Silence compiler warnings
15518 expr_ty a;
15519 if (
15520 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15521 &&
15522 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15523 &&
15524 (a = star_expressions_rule(p)) // star_expressions
15525 )
15526 {
15527 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 +030015528 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015529 if (_res == NULL && PyErr_Occurred()) {
15530 p->error_indicator = 1;
15531 D(p->level--);
15532 return NULL;
15533 }
15534 goto done;
15535 }
15536 p->mark = _mark;
15537 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15539 }
15540 _res = NULL;
15541 done:
15542 D(p->level--);
15543 return _res;
15544}
15545
15546// invalid_group: '(' starred_expression ')'
15547static void *
15548invalid_group_rule(Parser *p)
15549{
15550 D(p->level++);
15551 if (p->error_indicator) {
15552 D(p->level--);
15553 return NULL;
15554 }
15555 void * _res = NULL;
15556 int _mark = p->mark;
15557 { // '(' starred_expression ')'
15558 if (p->error_indicator) {
15559 D(p->level--);
15560 return NULL;
15561 }
15562 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15563 Token * _literal;
15564 Token * _literal_1;
15565 expr_ty a;
15566 if (
15567 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15568 &&
15569 (a = starred_expression_rule(p)) // starred_expression
15570 &&
15571 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15572 )
15573 {
15574 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15575 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15576 if (_res == NULL && PyErr_Occurred()) {
15577 p->error_indicator = 1;
15578 D(p->level--);
15579 return NULL;
15580 }
15581 goto done;
15582 }
15583 p->mark = _mark;
15584 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015586 }
15587 _res = NULL;
15588 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015589 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015590 return _res;
15591}
15592
Pablo Galindo275d7e12020-05-21 22:04:54 +010015593// invalid_import_from_targets: import_from_as_names ','
15594static void *
15595invalid_import_from_targets_rule(Parser *p)
15596{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015597 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015598 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015599 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015600 return NULL;
15601 }
15602 void * _res = NULL;
15603 int _mark = p->mark;
15604 { // import_from_as_names ','
15605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015606 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015607 return NULL;
15608 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015609 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 +010015610 Token * _literal;
15611 asdl_seq* import_from_as_names_var;
15612 if (
15613 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15614 &&
15615 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15616 )
15617 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015618 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 +010015619 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15620 if (_res == NULL && PyErr_Occurred()) {
15621 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015622 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015623 return NULL;
15624 }
15625 goto done;
15626 }
15627 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015628 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015630 }
15631 _res = NULL;
15632 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015633 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015634 return _res;
15635}
15636
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015637// _loop0_1: NEWLINE
15638static asdl_seq *
15639_loop0_1_rule(Parser *p)
15640{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015641 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015644 return NULL;
15645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015646 void *_res = NULL;
15647 int _mark = p->mark;
15648 int _start_mark = p->mark;
15649 void **_children = PyMem_Malloc(sizeof(void *));
15650 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015651 p->error_indicator = 1;
15652 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015653 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015654 return NULL;
15655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015656 ssize_t _children_capacity = 1;
15657 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015658 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015659 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015660 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015661 return NULL;
15662 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015663 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015664 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015665 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015666 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015667 )
15668 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015669 _res = newline_var;
15670 if (_n == _children_capacity) {
15671 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015672 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15673 if (!_new_children) {
15674 p->error_indicator = 1;
15675 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015676 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015677 return NULL;
15678 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015679 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015681 _children[_n++] = _res;
15682 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015684 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015685 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015688 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15689 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015690 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015691 p->error_indicator = 1;
15692 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015693 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015694 return NULL;
15695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015696 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15697 PyMem_Free(_children);
15698 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015699 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015700 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015701}
15702
Guido van Rossumc001c092020-04-30 12:12:19 -070015703// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015704static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015705_loop0_2_rule(Parser *p)
15706{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015707 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015709 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015710 return NULL;
15711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015712 void *_res = NULL;
15713 int _mark = p->mark;
15714 int _start_mark = p->mark;
15715 void **_children = PyMem_Malloc(sizeof(void *));
15716 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015717 p->error_indicator = 1;
15718 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015719 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015720 return NULL;
15721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015722 ssize_t _children_capacity = 1;
15723 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015724 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015727 return NULL;
15728 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015729 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015730 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015731 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015732 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015733 )
15734 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015735 _res = newline_var;
15736 if (_n == _children_capacity) {
15737 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015738 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15739 if (!_new_children) {
15740 p->error_indicator = 1;
15741 PyErr_NoMemory();
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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015745 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015747 _children[_n++] = _res;
15748 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015750 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015751 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015754 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15755 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015756 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015757 p->error_indicator = 1;
15758 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015759 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015760 return NULL;
15761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015762 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15763 PyMem_Free(_children);
15764 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015765 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015766 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015767}
15768
15769// _loop0_4: ',' expression
15770static asdl_seq *
15771_loop0_4_rule(Parser *p)
15772{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015773 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015774 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015778 void *_res = NULL;
15779 int _mark = p->mark;
15780 int _start_mark = p->mark;
15781 void **_children = PyMem_Malloc(sizeof(void *));
15782 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015783 p->error_indicator = 1;
15784 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015785 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015786 return NULL;
15787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015788 ssize_t _children_capacity = 1;
15789 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015790 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015793 return NULL;
15794 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015795 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015796 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015797 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015798 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015799 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015800 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015801 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015802 )
15803 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015804 _res = elem;
15805 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015806 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015807 PyMem_Free(_children);
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 if (_n == _children_capacity) {
15812 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015813 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15814 if (!_new_children) {
15815 p->error_indicator = 1;
15816 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015817 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015818 return NULL;
15819 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015820 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015822 _children[_n++] = _res;
15823 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015825 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015826 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015829 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15830 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015831 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015832 p->error_indicator = 1;
15833 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015834 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015835 return NULL;
15836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015837 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15838 PyMem_Free(_children);
15839 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015840 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015841 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015842}
15843
15844// _gather_3: expression _loop0_4
15845static asdl_seq *
15846_gather_3_rule(Parser *p)
15847{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015848 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015849 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015853 asdl_seq * _res = NULL;
15854 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015855 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015856 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015857 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015858 return NULL;
15859 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015860 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 -070015861 expr_ty elem;
15862 asdl_seq * seq;
15863 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015864 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015865 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015866 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015867 )
15868 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015869 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 +010015870 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015871 goto done;
15872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015873 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015874 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015877 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015878 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015880 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015881}
15882
15883// _loop0_6: ',' expression
15884static asdl_seq *
15885_loop0_6_rule(Parser *p)
15886{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015887 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015889 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015890 return NULL;
15891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015892 void *_res = NULL;
15893 int _mark = p->mark;
15894 int _start_mark = p->mark;
15895 void **_children = PyMem_Malloc(sizeof(void *));
15896 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015897 p->error_indicator = 1;
15898 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015899 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015900 return NULL;
15901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015902 ssize_t _children_capacity = 1;
15903 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015904 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015907 return NULL;
15908 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015909 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015910 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015911 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015912 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015913 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015914 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015915 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015916 )
15917 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015918 _res = elem;
15919 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015920 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015921 PyMem_Free(_children);
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 if (_n == _children_capacity) {
15926 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015927 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15928 if (!_new_children) {
15929 p->error_indicator = 1;
15930 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015931 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015932 return NULL;
15933 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015934 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015936 _children[_n++] = _res;
15937 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015939 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015940 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015943 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15944 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015945 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015946 p->error_indicator = 1;
15947 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015948 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015949 return NULL;
15950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015951 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15952 PyMem_Free(_children);
15953 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015954 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015955 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015956}
15957
15958// _gather_5: expression _loop0_6
15959static asdl_seq *
15960_gather_5_rule(Parser *p)
15961{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015962 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015963 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015967 asdl_seq * _res = NULL;
15968 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015969 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015972 return NULL;
15973 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015974 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 -070015975 expr_ty elem;
15976 asdl_seq * seq;
15977 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015978 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015979 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015980 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015981 )
15982 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015983 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 +010015984 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015985 goto done;
15986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015988 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015991 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015992 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015993 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015994 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015995}
15996
15997// _loop0_8: ',' expression
15998static asdl_seq *
15999_loop0_8_rule(Parser *p)
16000{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016001 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016003 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016004 return NULL;
16005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016006 void *_res = NULL;
16007 int _mark = p->mark;
16008 int _start_mark = p->mark;
16009 void **_children = PyMem_Malloc(sizeof(void *));
16010 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016011 p->error_indicator = 1;
16012 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016013 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016014 return NULL;
16015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016016 ssize_t _children_capacity = 1;
16017 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016018 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016020 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016021 return NULL;
16022 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016023 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016024 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016025 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016026 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016027 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016028 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016029 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016030 )
16031 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016032 _res = elem;
16033 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016034 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016035 PyMem_Free(_children);
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 if (_n == _children_capacity) {
16040 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016041 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16042 if (!_new_children) {
16043 p->error_indicator = 1;
16044 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016045 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016046 return NULL;
16047 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016048 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016050 _children[_n++] = _res;
16051 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016053 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016054 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016057 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16058 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016059 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016060 p->error_indicator = 1;
16061 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016062 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016063 return NULL;
16064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016065 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16066 PyMem_Free(_children);
16067 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016068 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016069 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016070}
16071
16072// _gather_7: expression _loop0_8
16073static asdl_seq *
16074_gather_7_rule(Parser *p)
16075{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016076 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016077 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016081 asdl_seq * _res = NULL;
16082 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016083 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016086 return NULL;
16087 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016088 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 -070016089 expr_ty elem;
16090 asdl_seq * seq;
16091 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016092 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016093 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016094 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016095 )
16096 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016097 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 +010016098 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016099 goto done;
16100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016101 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016102 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016105 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016106 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016107 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016108 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016109}
16110
16111// _loop0_10: ',' expression
16112static asdl_seq *
16113_loop0_10_rule(Parser *p)
16114{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016115 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016117 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016118 return NULL;
16119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016120 void *_res = NULL;
16121 int _mark = p->mark;
16122 int _start_mark = p->mark;
16123 void **_children = PyMem_Malloc(sizeof(void *));
16124 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016125 p->error_indicator = 1;
16126 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016127 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016128 return NULL;
16129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016130 ssize_t _children_capacity = 1;
16131 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016132 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016135 return NULL;
16136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016137 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016138 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016139 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016140 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016141 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016142 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016143 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016144 )
16145 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016146 _res = elem;
16147 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016148 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016149 PyMem_Free(_children);
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 if (_n == _children_capacity) {
16154 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016155 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16156 if (!_new_children) {
16157 p->error_indicator = 1;
16158 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016159 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016160 return NULL;
16161 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016162 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016164 _children[_n++] = _res;
16165 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016167 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016168 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016171 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16172 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016173 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016174 p->error_indicator = 1;
16175 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016176 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016177 return NULL;
16178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016179 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16180 PyMem_Free(_children);
16181 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016182 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016183 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016184}
16185
16186// _gather_9: expression _loop0_10
16187static asdl_seq *
16188_gather_9_rule(Parser *p)
16189{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016190 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016191 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016195 asdl_seq * _res = NULL;
16196 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016197 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016199 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016200 return NULL;
16201 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016202 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 -070016203 expr_ty elem;
16204 asdl_seq * seq;
16205 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016206 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016207 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016208 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016209 )
16210 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016211 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 +010016212 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016213 goto done;
16214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016215 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016216 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016219 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016220 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016221 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016222 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016223}
16224
16225// _loop1_11: statement
16226static asdl_seq *
16227_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016228{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016229 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016232 return NULL;
16233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016234 void *_res = NULL;
16235 int _mark = p->mark;
16236 int _start_mark = p->mark;
16237 void **_children = PyMem_Malloc(sizeof(void *));
16238 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016239 p->error_indicator = 1;
16240 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016241 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016242 return NULL;
16243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016244 ssize_t _children_capacity = 1;
16245 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016246 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016249 return NULL;
16250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016251 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016252 asdl_seq* statement_var;
16253 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016254 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016255 )
16256 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016257 _res = statement_var;
16258 if (_n == _children_capacity) {
16259 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016260 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16261 if (!_new_children) {
16262 p->error_indicator = 1;
16263 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016265 return NULL;
16266 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016267 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016269 _children[_n++] = _res;
16270 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016272 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016273 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016276 if (_n == 0 || p->error_indicator) {
16277 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016278 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016279 return NULL;
16280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016281 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16282 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016283 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016284 p->error_indicator = 1;
16285 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016287 return NULL;
16288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016289 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16290 PyMem_Free(_children);
16291 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016292 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016293 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016294}
16295
Guido van Rossumc001c092020-04-30 12:12:19 -070016296// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016297static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016298_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016299{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016300 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016302 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016303 return NULL;
16304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016305 void *_res = NULL;
16306 int _mark = p->mark;
16307 int _start_mark = p->mark;
16308 void **_children = PyMem_Malloc(sizeof(void *));
16309 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016310 p->error_indicator = 1;
16311 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016313 return NULL;
16314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016315 ssize_t _children_capacity = 1;
16316 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016317 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016320 return NULL;
16321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016322 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016323 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016324 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016325 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016326 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016327 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016328 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016329 )
16330 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016331 _res = elem;
16332 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016333 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016334 PyMem_Free(_children);
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 if (_n == _children_capacity) {
16339 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016340 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16341 if (!_new_children) {
16342 p->error_indicator = 1;
16343 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016344 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016345 return NULL;
16346 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016347 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016349 _children[_n++] = _res;
16350 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016353 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016356 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16357 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016358 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016359 p->error_indicator = 1;
16360 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016361 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016362 return NULL;
16363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016364 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16365 PyMem_Free(_children);
16366 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016367 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016368 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016369}
16370
Guido van Rossumc001c092020-04-30 12:12:19 -070016371// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016372static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016373_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016374{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016375 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016376 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016378 return NULL;
16379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016380 asdl_seq * _res = NULL;
16381 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016382 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016383 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016384 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016385 return NULL;
16386 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016387 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 +010016388 stmt_ty elem;
16389 asdl_seq * seq;
16390 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016391 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016392 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016393 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016394 )
16395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016396 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 +010016397 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016398 goto done;
16399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016400 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016401 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016404 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016405 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016406 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016407 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016408}
16409
Guido van Rossumc001c092020-04-30 12:12:19 -070016410// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016411static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016412_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016413{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016414 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016415 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016416 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016417 return NULL;
16418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016419 void * _res = NULL;
16420 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016421 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016424 return NULL;
16425 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016426 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016427 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016428 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016429 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016430 )
16431 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016432 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016433 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016434 goto done;
16435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016437 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016439 }
16440 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016443 return NULL;
16444 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016445 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016446 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016447 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016448 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016449 )
16450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016451 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016452 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016453 goto done;
16454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016455 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016456 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016459 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016460 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016461 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016462 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016463}
16464
Guido van Rossumc001c092020-04-30 12:12:19 -070016465// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016466static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016467_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016468{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016469 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016472 return NULL;
16473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016474 void * _res = NULL;
16475 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016476 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016477 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016478 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016479 return NULL;
16480 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016481 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016482 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016483 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016484 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016485 )
16486 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016487 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016488 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016489 goto done;
16490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016491 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016492 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016494 }
16495 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016496 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016497 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016498 return NULL;
16499 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016500 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016501 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016502 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016503 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016504 )
16505 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016506 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016507 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016508 goto done;
16509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016510 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016511 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016513 }
16514 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016515 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016516 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016517 return NULL;
16518 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016519 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016520 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016521 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016522 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016523 )
16524 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016525 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016526 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016527 goto done;
16528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016529 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016530 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016533 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016534 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016535 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016536 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016537}
16538
Guido van Rossumc001c092020-04-30 12:12:19 -070016539// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016540static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016541_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016542{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016543 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016546 return NULL;
16547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016548 void * _res = NULL;
16549 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016550 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016551 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016552 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016553 return NULL;
16554 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016555 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016556 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016557 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016558 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016559 )
16560 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016561 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016562 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016563 goto done;
16564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016565 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016566 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016568 }
16569 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016570 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016571 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016572 return NULL;
16573 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016574 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016575 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016576 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016577 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016578 )
16579 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016580 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016581 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016582 goto done;
16583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016584 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016585 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016588 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016589 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016590 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016591 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016592}
16593
Guido van Rossumc001c092020-04-30 12:12:19 -070016594// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016595static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016596_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016597{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016598 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016601 return NULL;
16602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016603 void * _res = NULL;
16604 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016605 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016608 return NULL;
16609 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016610 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016611 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016612 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016613 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016614 )
16615 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016616 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016617 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016618 goto done;
16619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016620 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016621 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016623 }
16624 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016627 return NULL;
16628 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016629 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016630 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016631 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016632 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016633 )
16634 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016635 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016636 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016637 goto done;
16638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016640 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016643 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016644 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016646 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016647}
16648
Guido van Rossumc001c092020-04-30 12:12:19 -070016649// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016650static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016651_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016652{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016653 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016656 return NULL;
16657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016658 void * _res = NULL;
16659 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016660 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016663 return NULL;
16664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016665 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016666 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016667 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016668 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016669 )
16670 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016671 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016672 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016673 goto done;
16674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016675 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016676 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016678 }
16679 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016681 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016682 return NULL;
16683 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016684 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016685 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016686 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016687 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016688 )
16689 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016690 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016691 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016692 goto done;
16693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016694 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016695 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016698 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016699 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016700 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016701 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016702}
16703
Guido van Rossumc001c092020-04-30 12:12:19 -070016704// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016705static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016706_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016707{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016708 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016709 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016711 return NULL;
16712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016713 void * _res = NULL;
16714 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016715 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016717 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016718 return NULL;
16719 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016720 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016721 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016722 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016723 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016724 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016725 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016726 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016727 )
16728 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016729 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 +010016730 _res = d;
16731 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016732 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016733 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016734 return NULL;
16735 }
16736 goto done;
16737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016738 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016739 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016742 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016743 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016744 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016745 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016746}
16747
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016748// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016749static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016750_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016751{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016752 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016754 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016755 return NULL;
16756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016757 void * _res = NULL;
16758 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016759 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016761 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016762 return NULL;
16763 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016764 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016765 Token * _literal;
16766 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016767 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016768 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016769 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016770 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016771 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016772 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016773 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016774 )
16775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016776 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 +010016777 _res = b;
16778 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016779 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016780 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016781 return NULL;
16782 }
16783 goto done;
16784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016785 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016786 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016788 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016789 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016790 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016791 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016792 return NULL;
16793 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016794 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 +030016795 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016796 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016797 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016798 )
16799 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016800 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 +030016801 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016802 goto done;
16803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016804 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016805 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016808 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016809 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016810 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016811 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016812}
16813
Guido van Rossumc001c092020-04-30 12:12:19 -070016814// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016815static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016816_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016817{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016818 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016821 return NULL;
16822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016823 void * _res = NULL;
16824 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016825 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016827 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016828 return NULL;
16829 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016830 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016831 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016832 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016833 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016834 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016835 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016836 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016837 )
16838 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016839 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 +010016840 _res = d;
16841 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016842 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016843 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016844 return NULL;
16845 }
16846 goto done;
16847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016848 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016849 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016852 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016853 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016854 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016855 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016856}
16857
Guido van Rossumc001c092020-04-30 12:12:19 -070016858// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016859static asdl_seq *
16860_loop1_22_rule(Parser *p)
16861{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016862 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016863 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016865 return NULL;
16866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016867 void *_res = NULL;
16868 int _mark = p->mark;
16869 int _start_mark = p->mark;
16870 void **_children = PyMem_Malloc(sizeof(void *));
16871 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016872 p->error_indicator = 1;
16873 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016875 return NULL;
16876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016877 ssize_t _children_capacity = 1;
16878 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016879 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016880 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016881 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016882 return NULL;
16883 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016884 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000016885 void *_tmp_137_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016886 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000016887 (_tmp_137_var = _tmp_137_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016888 )
16889 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000016890 _res = _tmp_137_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016891 if (_n == _children_capacity) {
16892 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016893 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16894 if (!_new_children) {
16895 p->error_indicator = 1;
16896 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016898 return NULL;
16899 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016900 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016902 _children[_n++] = _res;
16903 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016906 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016909 if (_n == 0 || p->error_indicator) {
16910 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016912 return NULL;
16913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016914 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16915 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016916 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016917 p->error_indicator = 1;
16918 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016919 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016920 return NULL;
16921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016922 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16923 PyMem_Free(_children);
16924 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016925 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016926 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016927}
16928
Guido van Rossumc001c092020-04-30 12:12:19 -070016929// _tmp_23: yield_expr | star_expressions
16930static void *
16931_tmp_23_rule(Parser *p)
16932{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016933 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016935 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016936 return NULL;
16937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016938 void * _res = NULL;
16939 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016940 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016942 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016943 return NULL;
16944 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016945 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 -070016946 expr_ty yield_expr_var;
16947 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016948 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016949 )
16950 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016951 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 +010016952 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016953 goto done;
16954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016955 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016956 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016958 }
16959 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016960 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016961 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016962 return NULL;
16963 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016964 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 -070016965 expr_ty star_expressions_var;
16966 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016967 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016968 )
16969 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016970 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 +010016971 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016972 goto done;
16973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016974 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016975 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016978 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016979 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016980 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016981 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016982}
16983
16984// _tmp_24: yield_expr | star_expressions
16985static void *
16986_tmp_24_rule(Parser *p)
16987{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016988 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016990 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016991 return NULL;
16992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016993 void * _res = NULL;
16994 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016995 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016998 return NULL;
16999 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017000 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 -070017001 expr_ty yield_expr_var;
17002 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017003 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070017004 )
17005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017006 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 +010017007 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017008 goto done;
17009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017011 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017013 }
17014 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017016 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017017 return NULL;
17018 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017019 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 -070017020 expr_ty star_expressions_var;
17021 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017022 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070017023 )
17024 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017025 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 +010017026 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017027 goto done;
17028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017029 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017030 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017033 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017034 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017035 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017036 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017037}
17038
17039// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017040static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017041_loop0_26_rule(Parser *p)
17042{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017043 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017044 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017045 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017046 return NULL;
17047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017048 void *_res = NULL;
17049 int _mark = p->mark;
17050 int _start_mark = p->mark;
17051 void **_children = PyMem_Malloc(sizeof(void *));
17052 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017053 p->error_indicator = 1;
17054 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017055 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017056 return NULL;
17057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017058 ssize_t _children_capacity = 1;
17059 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017060 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017061 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017062 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017063 return NULL;
17064 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017065 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017066 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017067 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017068 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017069 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017070 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017071 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017072 )
17073 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017074 _res = elem;
17075 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017076 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017077 PyMem_Free(_children);
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 if (_n == _children_capacity) {
17082 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017083 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17084 if (!_new_children) {
17085 p->error_indicator = 1;
17086 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017087 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017088 return NULL;
17089 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017090 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017092 _children[_n++] = _res;
17093 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017095 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017096 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017099 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17100 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017101 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017102 p->error_indicator = 1;
17103 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017104 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017105 return NULL;
17106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017107 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17108 PyMem_Free(_children);
17109 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017110 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017111 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017112}
17113
17114// _gather_25: NAME _loop0_26
17115static asdl_seq *
17116_gather_25_rule(Parser *p)
17117{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017118 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017119 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017123 asdl_seq * _res = NULL;
17124 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017125 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017127 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017128 return NULL;
17129 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017130 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 -070017131 expr_ty elem;
17132 asdl_seq * seq;
17133 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017134 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017135 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017136 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017137 )
17138 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017139 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 +010017140 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017141 goto done;
17142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017143 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017144 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017147 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017148 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017149 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017150 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017151}
17152
17153// _loop0_28: ',' NAME
17154static asdl_seq *
17155_loop0_28_rule(Parser *p)
17156{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017157 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017158 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017159 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017160 return NULL;
17161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017162 void *_res = NULL;
17163 int _mark = p->mark;
17164 int _start_mark = p->mark;
17165 void **_children = PyMem_Malloc(sizeof(void *));
17166 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017167 p->error_indicator = 1;
17168 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017169 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017170 return NULL;
17171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017172 ssize_t _children_capacity = 1;
17173 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017174 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017176 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017177 return NULL;
17178 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017179 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017180 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017181 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017182 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017183 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017184 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017185 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017186 )
17187 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017188 _res = elem;
17189 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017190 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017191 PyMem_Free(_children);
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 if (_n == _children_capacity) {
17196 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017197 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17198 if (!_new_children) {
17199 p->error_indicator = 1;
17200 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017201 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017202 return NULL;
17203 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017204 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017206 _children[_n++] = _res;
17207 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017209 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017210 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017213 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17214 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017215 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017216 p->error_indicator = 1;
17217 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017218 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017219 return NULL;
17220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017221 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17222 PyMem_Free(_children);
17223 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017224 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017225 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017226}
17227
17228// _gather_27: NAME _loop0_28
17229static asdl_seq *
17230_gather_27_rule(Parser *p)
17231{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017232 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017233 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017237 asdl_seq * _res = NULL;
17238 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017239 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017240 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017241 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017242 return NULL;
17243 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017244 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 -070017245 expr_ty elem;
17246 asdl_seq * seq;
17247 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017248 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017249 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017250 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017251 )
17252 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017253 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 +010017254 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017255 goto done;
17256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017257 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017258 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017261 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017262 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017263 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017264 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017265}
17266
17267// _tmp_29: ',' expression
17268static void *
17269_tmp_29_rule(Parser *p)
17270{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017271 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017272 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017273 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017274 return NULL;
17275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017276 void * _res = NULL;
17277 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017278 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017281 return NULL;
17282 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017283 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017284 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017285 expr_ty z;
17286 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017287 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017288 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017289 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017290 )
17291 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017292 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017293 _res = z;
17294 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017295 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017296 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017297 return NULL;
17298 }
17299 goto done;
17300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017301 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017302 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017305 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017306 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017307 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017308 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017309}
17310
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017311// _tmp_30: ';' | NEWLINE
17312static void *
17313_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017314{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017315 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017317 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017318 return NULL;
17319 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017320 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017321 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017322 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017323 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017324 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017325 return NULL;
17326 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017327 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17328 Token * _literal;
17329 if (
17330 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017331 )
17332 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017333 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17334 _res = _literal;
17335 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017337 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017338 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017340 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017341 { // NEWLINE
17342 if (p->error_indicator) {
17343 D(p->level--);
17344 return NULL;
17345 }
17346 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17347 Token * newline_var;
17348 if (
17349 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17350 )
17351 {
17352 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17353 _res = newline_var;
17354 goto done;
17355 }
17356 p->mark = _mark;
17357 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017359 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017360 _res = NULL;
17361 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017362 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017363 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017364}
17365
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017366// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017367static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017368_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017369{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017370 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017371 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017372 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017373 return NULL;
17374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017375 void *_res = NULL;
17376 int _mark = p->mark;
17377 int _start_mark = p->mark;
17378 void **_children = PyMem_Malloc(sizeof(void *));
17379 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017380 p->error_indicator = 1;
17381 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017382 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017383 return NULL;
17384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017385 ssize_t _children_capacity = 1;
17386 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017387 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017388 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017389 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017390 return NULL;
17391 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017392 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000017393 void *_tmp_138_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017394 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000017395 (_tmp_138_var = _tmp_138_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017396 )
17397 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000017398 _res = _tmp_138_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017399 if (_n == _children_capacity) {
17400 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017401 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17402 if (!_new_children) {
17403 p->error_indicator = 1;
17404 PyErr_NoMemory();
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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017408 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017410 _children[_n++] = _res;
17411 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017413 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017414 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17416 }
17417 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17418 if (!_seq) {
17419 PyMem_Free(_children);
17420 p->error_indicator = 1;
17421 PyErr_NoMemory();
17422 D(p->level--);
17423 return NULL;
17424 }
17425 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17426 PyMem_Free(_children);
17427 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17428 D(p->level--);
17429 return _seq;
17430}
17431
17432// _loop1_32: ('.' | '...')
17433static asdl_seq *
17434_loop1_32_rule(Parser *p)
17435{
17436 D(p->level++);
17437 if (p->error_indicator) {
17438 D(p->level--);
17439 return NULL;
17440 }
17441 void *_res = NULL;
17442 int _mark = p->mark;
17443 int _start_mark = p->mark;
17444 void **_children = PyMem_Malloc(sizeof(void *));
17445 if (!_children) {
17446 p->error_indicator = 1;
17447 PyErr_NoMemory();
17448 D(p->level--);
17449 return NULL;
17450 }
17451 ssize_t _children_capacity = 1;
17452 ssize_t _n = 0;
17453 { // ('.' | '...')
17454 if (p->error_indicator) {
17455 D(p->level--);
17456 return NULL;
17457 }
17458 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000017459 void *_tmp_139_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017460 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000017461 (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017462 )
17463 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000017464 _res = _tmp_139_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017465 if (_n == _children_capacity) {
17466 _children_capacity *= 2;
17467 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17468 if (!_new_children) {
17469 p->error_indicator = 1;
17470 PyErr_NoMemory();
17471 D(p->level--);
17472 return NULL;
17473 }
17474 _children = _new_children;
17475 }
17476 _children[_n++] = _res;
17477 _mark = p->mark;
17478 }
17479 p->mark = _mark;
17480 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017483 if (_n == 0 || p->error_indicator) {
17484 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017485 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017486 return NULL;
17487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017488 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17489 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017490 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017491 p->error_indicator = 1;
17492 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017493 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017494 return NULL;
17495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017496 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17497 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017498 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017499 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017500 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017501}
17502
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017503// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017504static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017505_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017506{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017507 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017510 return NULL;
17511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017512 void *_res = NULL;
17513 int _mark = p->mark;
17514 int _start_mark = p->mark;
17515 void **_children = PyMem_Malloc(sizeof(void *));
17516 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017517 p->error_indicator = 1;
17518 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017519 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017520 return NULL;
17521 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017522 ssize_t _children_capacity = 1;
17523 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017524 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017525 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017526 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017527 return NULL;
17528 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017529 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 +010017530 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017531 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017532 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017533 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017534 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017535 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017536 )
17537 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017538 _res = elem;
17539 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017540 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017541 PyMem_Free(_children);
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 if (_n == _children_capacity) {
17546 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017547 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17548 if (!_new_children) {
17549 p->error_indicator = 1;
17550 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017552 return NULL;
17553 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017554 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017556 _children[_n++] = _res;
17557 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017559 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017560 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017563 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17564 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017565 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017566 p->error_indicator = 1;
17567 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017569 return NULL;
17570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017571 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17572 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017573 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017574 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017575 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017576}
17577
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017578// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017579static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017580_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017581{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017582 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017584 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017585 return NULL;
17586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017587 asdl_seq * _res = NULL;
17588 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017589 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017591 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017592 return NULL;
17593 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017594 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 +010017595 alias_ty elem;
17596 asdl_seq * seq;
17597 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017598 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017599 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017600 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017601 )
17602 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017603 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 +010017604 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017605 goto done;
17606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017607 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017608 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017611 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017612 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017613 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017614 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017615}
17616
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017617// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017618static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017619_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017620{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017621 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017623 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017624 return NULL;
17625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017626 void * _res = NULL;
17627 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017628 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017629 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017630 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017631 return NULL;
17632 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017633 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017634 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017635 expr_ty z;
17636 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017637 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017638 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017639 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017640 )
17641 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017642 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 +010017643 _res = z;
17644 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017645 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017646 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017647 return NULL;
17648 }
17649 goto done;
17650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017651 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017652 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017655 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017656 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017657 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017658 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017659}
17660
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017661// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017662static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017663_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017664{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017665 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017668 return NULL;
17669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017670 void *_res = NULL;
17671 int _mark = p->mark;
17672 int _start_mark = p->mark;
17673 void **_children = PyMem_Malloc(sizeof(void *));
17674 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017675 p->error_indicator = 1;
17676 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017677 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017678 return NULL;
17679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017680 ssize_t _children_capacity = 1;
17681 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017682 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017683 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017684 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017685 return NULL;
17686 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017687 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 +010017688 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017689 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017690 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017691 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017692 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017693 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017694 )
17695 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017696 _res = elem;
17697 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017698 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017699 PyMem_Free(_children);
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 if (_n == _children_capacity) {
17704 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017705 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17706 if (!_new_children) {
17707 p->error_indicator = 1;
17708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017710 return NULL;
17711 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017712 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017714 _children[_n++] = _res;
17715 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017717 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017718 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017721 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17722 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017723 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017724 p->error_indicator = 1;
17725 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017727 return NULL;
17728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017729 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17730 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017731 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017732 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017733 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017734}
17735
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017736// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017737static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017738_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017739{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017740 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017743 return NULL;
17744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017745 asdl_seq * _res = NULL;
17746 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017747 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017748 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017749 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017750 return NULL;
17751 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017752 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 +010017753 alias_ty elem;
17754 asdl_seq * seq;
17755 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017756 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017757 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017758 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017759 )
17760 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017761 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 +010017762 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017763 goto done;
17764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017765 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017766 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017769 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017770 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017771 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017772 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017773}
17774
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017775// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017776static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017777_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017778{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017779 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017780 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017782 return NULL;
17783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017784 void * _res = NULL;
17785 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017786 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017789 return NULL;
17790 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017791 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017792 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017793 expr_ty z;
17794 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017795 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017796 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017797 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017798 )
17799 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017800 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 +010017801 _res = z;
17802 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017803 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017805 return NULL;
17806 }
17807 goto done;
17808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017809 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017810 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017813 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017814 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017815 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017816 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017817}
17818
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017819// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017820static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017821_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017822{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017823 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017826 return NULL;
17827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017828 void *_res = NULL;
17829 int _mark = p->mark;
17830 int _start_mark = p->mark;
17831 void **_children = PyMem_Malloc(sizeof(void *));
17832 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017833 p->error_indicator = 1;
17834 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017836 return NULL;
17837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017838 ssize_t _children_capacity = 1;
17839 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017840 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017843 return NULL;
17844 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017845 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017846 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017847 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017848 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017849 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017850 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017851 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017852 )
17853 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017854 _res = elem;
17855 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017856 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017857 PyMem_Free(_children);
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 if (_n == _children_capacity) {
17862 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17864 if (!_new_children) {
17865 p->error_indicator = 1;
17866 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017868 return NULL;
17869 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017870 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017872 _children[_n++] = _res;
17873 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017875 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017876 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017879 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17880 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017881 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017882 p->error_indicator = 1;
17883 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017885 return NULL;
17886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017887 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17888 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017889 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017890 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017891 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017892}
17893
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017894// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017895static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017896_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017897{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017898 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017901 return NULL;
17902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017903 asdl_seq * _res = NULL;
17904 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017905 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017907 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017908 return NULL;
17909 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017910 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 +010017911 withitem_ty elem;
17912 asdl_seq * seq;
17913 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017914 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017915 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017916 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017917 )
17918 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017919 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 +010017920 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017921 goto done;
17922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017923 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017924 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017927 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017928 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017929 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017930 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017931}
17932
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017933// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017934static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017935_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017936{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017937 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017939 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017940 return NULL;
17941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017942 void *_res = NULL;
17943 int _mark = p->mark;
17944 int _start_mark = p->mark;
17945 void **_children = PyMem_Malloc(sizeof(void *));
17946 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017947 p->error_indicator = 1;
17948 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017949 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017950 return NULL;
17951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017952 ssize_t _children_capacity = 1;
17953 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017954 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017957 return NULL;
17958 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017959 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017960 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017961 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017962 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017963 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017964 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017965 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017966 )
17967 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017968 _res = elem;
17969 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017970 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017971 PyMem_Free(_children);
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 if (_n == _children_capacity) {
17976 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017977 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17978 if (!_new_children) {
17979 p->error_indicator = 1;
17980 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017981 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017982 return NULL;
17983 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017984 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017986 _children[_n++] = _res;
17987 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017989 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017990 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017993 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17994 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017995 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017996 p->error_indicator = 1;
17997 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017999 return NULL;
18000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018001 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18002 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018003 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018004 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018005 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018006}
18007
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018008// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018009static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018010_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018011{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018012 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018013 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018015 return NULL;
18016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018017 asdl_seq * _res = NULL;
18018 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018019 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018020 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018021 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018022 return NULL;
18023 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018024 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 +010018025 withitem_ty elem;
18026 asdl_seq * seq;
18027 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018028 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018029 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018030 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018031 )
18032 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018033 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 +010018034 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018035 goto done;
18036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018037 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018038 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018041 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018042 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018043 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018044 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018045}
18046
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018047// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018048static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018049_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018050{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018051 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018053 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018054 return NULL;
18055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018056 void *_res = NULL;
18057 int _mark = p->mark;
18058 int _start_mark = p->mark;
18059 void **_children = PyMem_Malloc(sizeof(void *));
18060 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018061 p->error_indicator = 1;
18062 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018063 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018064 return NULL;
18065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018066 ssize_t _children_capacity = 1;
18067 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018068 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018070 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018071 return NULL;
18072 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018073 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018074 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018075 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018076 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018077 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018078 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018079 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018080 )
18081 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018082 _res = elem;
18083 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018084 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018085 PyMem_Free(_children);
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 if (_n == _children_capacity) {
18090 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018091 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18092 if (!_new_children) {
18093 p->error_indicator = 1;
18094 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018095 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018096 return NULL;
18097 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018098 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018100 _children[_n++] = _res;
18101 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018103 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018104 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018107 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18108 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018109 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018110 p->error_indicator = 1;
18111 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018112 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018113 return NULL;
18114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018115 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18116 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018117 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018118 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018119 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018120}
18121
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018122// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018123static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018124_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018125{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018126 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018127 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018128 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018129 return NULL;
18130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018131 asdl_seq * _res = NULL;
18132 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018133 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018134 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018135 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018136 return NULL;
18137 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018138 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 +030018139 withitem_ty elem;
18140 asdl_seq * seq;
18141 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018142 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018143 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018144 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018145 )
18146 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018147 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 +010018148 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018149 goto done;
18150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018151 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018152 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018155 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018156 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018157 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018158 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018159}
18160
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018161// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018162static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018163_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018164{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018165 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018167 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018168 return NULL;
18169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018170 void *_res = NULL;
18171 int _mark = p->mark;
18172 int _start_mark = p->mark;
18173 void **_children = PyMem_Malloc(sizeof(void *));
18174 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018175 p->error_indicator = 1;
18176 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018177 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018178 return NULL;
18179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018180 ssize_t _children_capacity = 1;
18181 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018182 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018184 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018185 return NULL;
18186 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018187 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018188 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018189 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018190 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018191 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018192 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018193 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018194 )
18195 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018196 _res = elem;
18197 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018198 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018199 PyMem_Free(_children);
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 if (_n == _children_capacity) {
18204 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018205 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18206 if (!_new_children) {
18207 p->error_indicator = 1;
18208 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018209 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018210 return NULL;
18211 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018212 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018214 _children[_n++] = _res;
18215 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018217 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018218 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018221 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18222 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018223 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018224 p->error_indicator = 1;
18225 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018226 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018227 return NULL;
18228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018229 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18230 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018231 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018232 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018233 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018234}
18235
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018236// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018237static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018238_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018240 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018242 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018243 return NULL;
18244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018245 asdl_seq * _res = NULL;
18246 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018247 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018250 return NULL;
18251 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018252 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 +030018253 withitem_ty elem;
18254 asdl_seq * seq;
18255 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018256 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018257 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018258 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018259 )
18260 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018261 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 +010018262 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018263 goto done;
18264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018265 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018266 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018269 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018270 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018271 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018272 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018273}
18274
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018275// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018276static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018277_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018278{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018279 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018282 return NULL;
18283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018284 void * _res = NULL;
18285 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018286 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018288 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018289 return NULL;
18290 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018291 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18292 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018293 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018294 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018295 )
18296 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018297 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18298 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018299 goto done;
18300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018301 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018302 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18304 }
18305 { // ')'
18306 if (p->error_indicator) {
18307 D(p->level--);
18308 return NULL;
18309 }
18310 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18311 Token * _literal;
18312 if (
18313 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18314 )
18315 {
18316 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18317 _res = _literal;
18318 goto done;
18319 }
18320 p->mark = _mark;
18321 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18323 }
18324 { // ':'
18325 if (p->error_indicator) {
18326 D(p->level--);
18327 return NULL;
18328 }
18329 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18330 Token * _literal;
18331 if (
18332 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18333 )
18334 {
18335 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18336 _res = _literal;
18337 goto done;
18338 }
18339 p->mark = _mark;
18340 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018343 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018344 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018345 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018346 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018347}
18348
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018349// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018350static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018351_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018352{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018353 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018355 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018356 return NULL;
18357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018358 void *_res = NULL;
18359 int _mark = p->mark;
18360 int _start_mark = p->mark;
18361 void **_children = PyMem_Malloc(sizeof(void *));
18362 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018363 p->error_indicator = 1;
18364 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018365 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018366 return NULL;
18367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018368 ssize_t _children_capacity = 1;
18369 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018370 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018371 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018372 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018373 return NULL;
18374 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018375 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018376 excepthandler_ty except_block_var;
18377 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018378 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018379 )
18380 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018381 _res = except_block_var;
18382 if (_n == _children_capacity) {
18383 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018384 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18385 if (!_new_children) {
18386 p->error_indicator = 1;
18387 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018389 return NULL;
18390 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018391 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018393 _children[_n++] = _res;
18394 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018396 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018397 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018400 if (_n == 0 || p->error_indicator) {
18401 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018402 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018403 return NULL;
18404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018405 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18406 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018407 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018408 p->error_indicator = 1;
18409 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018411 return NULL;
18412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018413 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18414 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018415 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018416 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018417 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018418}
18419
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018420// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018421static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018422_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018423{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018424 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018426 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018427 return NULL;
18428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018429 void * _res = NULL;
18430 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018431 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018434 return NULL;
18435 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018436 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018437 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018438 expr_ty z;
18439 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018440 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018441 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018442 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018443 )
18444 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018445 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 +010018446 _res = z;
18447 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018448 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018450 return NULL;
18451 }
18452 goto done;
18453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018454 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018455 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018458 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018459 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018460 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018461 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018462}
18463
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018464// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018465static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018466_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018467{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018468 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018469 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018470 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018471 return NULL;
18472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018473 void * _res = NULL;
18474 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018475 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018476 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018477 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018478 return NULL;
18479 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018480 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018481 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018482 expr_ty z;
18483 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018484 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018485 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018486 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018487 )
18488 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018489 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 +010018490 _res = z;
18491 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018492 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018493 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018494 return NULL;
18495 }
18496 goto done;
18497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018498 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018499 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018502 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018503 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018504 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018505 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018506}
18507
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018508// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018509static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018510_tmp_51_rule(Parser *p)
18511{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018512 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018513 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018514 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018515 return NULL;
18516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018517 void * _res = NULL;
18518 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018519 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018522 return NULL;
18523 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018524 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018525 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018526 expr_ty z;
18527 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018528 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018530 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018531 )
18532 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018533 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018534 _res = z;
18535 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018536 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018537 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018538 return NULL;
18539 }
18540 goto done;
18541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018543 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018546 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018547 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018548 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018549 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018550}
18551
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018552// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018553static void *
18554_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018555{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018556 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018558 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018559 return NULL;
18560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018561 void * _res = NULL;
18562 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018563 { // '->' expression
18564 if (p->error_indicator) {
18565 D(p->level--);
18566 return NULL;
18567 }
18568 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18569 Token * _literal;
18570 expr_ty z;
18571 if (
18572 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18573 &&
18574 (z = expression_rule(p)) // expression
18575 )
18576 {
18577 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18578 _res = z;
18579 if (_res == NULL && PyErr_Occurred()) {
18580 p->error_indicator = 1;
18581 D(p->level--);
18582 return NULL;
18583 }
18584 goto done;
18585 }
18586 p->mark = _mark;
18587 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18589 }
18590 _res = NULL;
18591 done:
18592 D(p->level--);
18593 return _res;
18594}
18595
18596// _tmp_53: NEWLINE INDENT
18597static void *
18598_tmp_53_rule(Parser *p)
18599{
18600 D(p->level++);
18601 if (p->error_indicator) {
18602 D(p->level--);
18603 return NULL;
18604 }
18605 void * _res = NULL;
18606 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018607 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018609 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018610 return NULL;
18611 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018612 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018613 Token * indent_var;
18614 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018615 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018616 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018618 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018619 )
18620 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018621 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 +010018622 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018623 goto done;
18624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018625 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018626 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018629 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018630 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018631 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018632 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018633}
18634
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018635// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018636static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018637_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018638{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018639 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018641 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018642 return NULL;
18643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018644 void *_res = NULL;
18645 int _mark = p->mark;
18646 int _start_mark = p->mark;
18647 void **_children = PyMem_Malloc(sizeof(void *));
18648 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018649 p->error_indicator = 1;
18650 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018652 return NULL;
18653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018654 ssize_t _children_capacity = 1;
18655 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018656 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018659 return NULL;
18660 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018661 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 -070018662 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018663 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018664 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018665 )
18666 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018667 _res = param_no_default_var;
18668 if (_n == _children_capacity) {
18669 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018670 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18671 if (!_new_children) {
18672 p->error_indicator = 1;
18673 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018675 return NULL;
18676 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018677 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018679 _children[_n++] = _res;
18680 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018682 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018683 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018686 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18687 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018688 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018689 p->error_indicator = 1;
18690 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018691 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018692 return NULL;
18693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018694 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18695 PyMem_Free(_children);
18696 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018697 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018698 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018699}
18700
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018701// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018702static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018703_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018704{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018705 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018707 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018708 return NULL;
18709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018710 void *_res = NULL;
18711 int _mark = p->mark;
18712 int _start_mark = p->mark;
18713 void **_children = PyMem_Malloc(sizeof(void *));
18714 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018715 p->error_indicator = 1;
18716 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018717 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018718 return NULL;
18719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018720 ssize_t _children_capacity = 1;
18721 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018722 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018725 return NULL;
18726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018727 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 -070018728 NameDefaultPair* param_with_default_var;
18729 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018730 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018731 )
18732 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018733 _res = param_with_default_var;
18734 if (_n == _children_capacity) {
18735 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018736 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18737 if (!_new_children) {
18738 p->error_indicator = 1;
18739 PyErr_NoMemory();
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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018743 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018745 _children[_n++] = _res;
18746 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018748 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018749 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018752 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18753 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018754 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018755 p->error_indicator = 1;
18756 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018757 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018758 return NULL;
18759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018760 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18761 PyMem_Free(_children);
18762 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018763 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018764 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018765}
18766
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018767// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018768static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018769_loop0_56_rule(Parser *p)
18770{
18771 D(p->level++);
18772 if (p->error_indicator) {
18773 D(p->level--);
18774 return NULL;
18775 }
18776 void *_res = NULL;
18777 int _mark = p->mark;
18778 int _start_mark = p->mark;
18779 void **_children = PyMem_Malloc(sizeof(void *));
18780 if (!_children) {
18781 p->error_indicator = 1;
18782 PyErr_NoMemory();
18783 D(p->level--);
18784 return NULL;
18785 }
18786 ssize_t _children_capacity = 1;
18787 ssize_t _n = 0;
18788 { // param_with_default
18789 if (p->error_indicator) {
18790 D(p->level--);
18791 return NULL;
18792 }
18793 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18794 NameDefaultPair* param_with_default_var;
18795 while (
18796 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18797 )
18798 {
18799 _res = param_with_default_var;
18800 if (_n == _children_capacity) {
18801 _children_capacity *= 2;
18802 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18803 if (!_new_children) {
18804 p->error_indicator = 1;
18805 PyErr_NoMemory();
18806 D(p->level--);
18807 return NULL;
18808 }
18809 _children = _new_children;
18810 }
18811 _children[_n++] = _res;
18812 _mark = p->mark;
18813 }
18814 p->mark = _mark;
18815 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18817 }
18818 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18819 if (!_seq) {
18820 PyMem_Free(_children);
18821 p->error_indicator = 1;
18822 PyErr_NoMemory();
18823 D(p->level--);
18824 return NULL;
18825 }
18826 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18827 PyMem_Free(_children);
18828 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18829 D(p->level--);
18830 return _seq;
18831}
18832
18833// _loop1_57: param_no_default
18834static asdl_seq *
18835_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018836{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018837 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018839 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018840 return NULL;
18841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018842 void *_res = NULL;
18843 int _mark = p->mark;
18844 int _start_mark = p->mark;
18845 void **_children = PyMem_Malloc(sizeof(void *));
18846 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018847 p->error_indicator = 1;
18848 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018849 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018850 return NULL;
18851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018852 ssize_t _children_capacity = 1;
18853 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018854 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018857 return NULL;
18858 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018859 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 -070018860 arg_ty param_no_default_var;
18861 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018862 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018863 )
18864 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018865 _res = param_no_default_var;
18866 if (_n == _children_capacity) {
18867 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018868 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18869 if (!_new_children) {
18870 p->error_indicator = 1;
18871 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018872 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018873 return NULL;
18874 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018875 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018877 _children[_n++] = _res;
18878 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018880 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018881 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018884 if (_n == 0 || p->error_indicator) {
18885 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018887 return NULL;
18888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018889 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18890 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018891 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018892 p->error_indicator = 1;
18893 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018895 return NULL;
18896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018897 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18898 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018899 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018900 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018901 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018902}
18903
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018904// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018905static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018906_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018907{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018908 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018911 return NULL;
18912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018913 void *_res = NULL;
18914 int _mark = p->mark;
18915 int _start_mark = p->mark;
18916 void **_children = PyMem_Malloc(sizeof(void *));
18917 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018918 p->error_indicator = 1;
18919 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018921 return NULL;
18922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018923 ssize_t _children_capacity = 1;
18924 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018925 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018927 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018928 return NULL;
18929 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018930 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 -070018931 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018932 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018933 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018934 )
18935 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018936 _res = param_with_default_var;
18937 if (_n == _children_capacity) {
18938 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018939 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18940 if (!_new_children) {
18941 p->error_indicator = 1;
18942 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018943 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018944 return NULL;
18945 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018946 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018948 _children[_n++] = _res;
18949 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018951 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018952 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018955 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18956 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018957 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018958 p->error_indicator = 1;
18959 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018961 return NULL;
18962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018963 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18964 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018965 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018966 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018967 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018968}
18969
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018970// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018971static asdl_seq *
18972_loop1_59_rule(Parser *p)
18973{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018974 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018975 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018976 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018977 return NULL;
18978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018979 void *_res = NULL;
18980 int _mark = p->mark;
18981 int _start_mark = p->mark;
18982 void **_children = PyMem_Malloc(sizeof(void *));
18983 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018984 p->error_indicator = 1;
18985 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018986 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018987 return NULL;
18988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018989 ssize_t _children_capacity = 1;
18990 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018991 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018994 return NULL;
18995 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018996 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18997 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018998 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018999 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019000 )
19001 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019002 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019003 if (_n == _children_capacity) {
19004 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019005 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19006 if (!_new_children) {
19007 p->error_indicator = 1;
19008 PyErr_NoMemory();
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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019012 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019014 _children[_n++] = _res;
19015 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019017 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019018 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019021 if (_n == 0 || p->error_indicator) {
19022 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019023 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019024 return NULL;
19025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019026 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19027 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019028 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019029 p->error_indicator = 1;
19030 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019031 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019032 return NULL;
19033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019034 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19035 PyMem_Free(_children);
19036 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019037 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019038 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019039}
19040
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019041// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019042static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019043_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070019044{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019045 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019047 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019048 return NULL;
19049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019050 void *_res = NULL;
19051 int _mark = p->mark;
19052 int _start_mark = p->mark;
19053 void **_children = PyMem_Malloc(sizeof(void *));
19054 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019055 p->error_indicator = 1;
19056 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019057 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019058 return NULL;
19059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019060 ssize_t _children_capacity = 1;
19061 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019062 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019063 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019064 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019065 return NULL;
19066 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019067 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 +030019068 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019069 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019070 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019071 )
19072 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019073 _res = param_no_default_var;
19074 if (_n == _children_capacity) {
19075 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019076 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19077 if (!_new_children) {
19078 p->error_indicator = 1;
19079 PyErr_NoMemory();
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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019083 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019085 _children[_n++] = _res;
19086 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019088 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019089 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019092 if (_n == 0 || p->error_indicator) {
19093 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019094 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019095 return NULL;
19096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019097 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19098 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019099 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019100 p->error_indicator = 1;
19101 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019102 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019103 return NULL;
19104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019105 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19106 PyMem_Free(_children);
19107 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019108 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019109 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019110}
19111
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019112// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019113static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019114_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019115{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019116 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019118 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019119 return NULL;
19120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019121 void *_res = NULL;
19122 int _mark = p->mark;
19123 int _start_mark = p->mark;
19124 void **_children = PyMem_Malloc(sizeof(void *));
19125 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019126 p->error_indicator = 1;
19127 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019128 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019129 return NULL;
19130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019131 ssize_t _children_capacity = 1;
19132 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019133 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019134 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019135 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019136 return NULL;
19137 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019138 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 +030019139 arg_ty param_no_default_var;
19140 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019141 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019142 )
19143 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019144 _res = param_no_default_var;
19145 if (_n == _children_capacity) {
19146 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019147 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19148 if (!_new_children) {
19149 p->error_indicator = 1;
19150 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019151 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019152 return NULL;
19153 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019154 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019156 _children[_n++] = _res;
19157 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019159 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019160 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019163 if (_n == 0 || p->error_indicator) {
19164 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019165 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019166 return NULL;
19167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019168 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19169 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019170 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019171 p->error_indicator = 1;
19172 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019173 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019174 return NULL;
19175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019176 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19177 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019178 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019179 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019180 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019181}
19182
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019183// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019184static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019185_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019186{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019187 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019189 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019190 return NULL;
19191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019192 void *_res = NULL;
19193 int _mark = p->mark;
19194 int _start_mark = p->mark;
19195 void **_children = PyMem_Malloc(sizeof(void *));
19196 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019197 p->error_indicator = 1;
19198 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019199 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019200 return NULL;
19201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019202 ssize_t _children_capacity = 1;
19203 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019204 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019205 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019206 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019207 return NULL;
19208 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019209 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 +030019210 arg_ty param_no_default_var;
19211 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019212 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019213 )
19214 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019215 _res = param_no_default_var;
19216 if (_n == _children_capacity) {
19217 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019218 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19219 if (!_new_children) {
19220 p->error_indicator = 1;
19221 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019222 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019223 return NULL;
19224 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019225 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019227 _children[_n++] = _res;
19228 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019230 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019231 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019234 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19235 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019236 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019237 p->error_indicator = 1;
19238 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019239 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019240 return NULL;
19241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019242 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19243 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019244 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019245 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019246 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019247}
19248
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019249// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019250static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019251_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019252{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019253 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019255 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019256 return NULL;
19257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019258 void *_res = NULL;
19259 int _mark = p->mark;
19260 int _start_mark = p->mark;
19261 void **_children = PyMem_Malloc(sizeof(void *));
19262 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019263 p->error_indicator = 1;
19264 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019265 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019266 return NULL;
19267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019268 ssize_t _children_capacity = 1;
19269 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019270 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019271 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019272 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019273 return NULL;
19274 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019275 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 +030019276 NameDefaultPair* param_with_default_var;
19277 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019278 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019279 )
19280 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019281 _res = param_with_default_var;
19282 if (_n == _children_capacity) {
19283 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019284 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19285 if (!_new_children) {
19286 p->error_indicator = 1;
19287 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019288 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019289 return NULL;
19290 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019291 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019293 _children[_n++] = _res;
19294 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019296 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019297 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019300 if (_n == 0 || p->error_indicator) {
19301 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019302 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019303 return NULL;
19304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019305 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19306 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019307 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019308 p->error_indicator = 1;
19309 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019310 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019311 return NULL;
19312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019313 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19314 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019315 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019316 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019317 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019318}
19319
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019320// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019321static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019322_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019323{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019324 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019326 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019327 return NULL;
19328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019329 void *_res = NULL;
19330 int _mark = p->mark;
19331 int _start_mark = p->mark;
19332 void **_children = PyMem_Malloc(sizeof(void *));
19333 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019334 p->error_indicator = 1;
19335 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019336 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019337 return NULL;
19338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019339 ssize_t _children_capacity = 1;
19340 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019341 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019342 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019343 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019344 return NULL;
19345 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019346 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19347 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019348 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019349 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019350 )
19351 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019352 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019353 if (_n == _children_capacity) {
19354 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019355 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19356 if (!_new_children) {
19357 p->error_indicator = 1;
19358 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019359 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019360 return NULL;
19361 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019362 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019364 _children[_n++] = _res;
19365 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019367 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019368 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019371 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19372 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019373 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019374 p->error_indicator = 1;
19375 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019376 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019377 return NULL;
19378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019379 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19380 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019381 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019382 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019383 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019384}
19385
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019386// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019387static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019388_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019389{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019390 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019392 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019393 return NULL;
19394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019395 void *_res = NULL;
19396 int _mark = p->mark;
19397 int _start_mark = p->mark;
19398 void **_children = PyMem_Malloc(sizeof(void *));
19399 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019400 p->error_indicator = 1;
19401 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019402 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019403 return NULL;
19404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019405 ssize_t _children_capacity = 1;
19406 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019407 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019410 return NULL;
19411 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019412 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19413 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019414 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019415 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019416 )
19417 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019418 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019419 if (_n == _children_capacity) {
19420 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019421 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19422 if (!_new_children) {
19423 p->error_indicator = 1;
19424 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019425 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019426 return NULL;
19427 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019428 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019430 _children[_n++] = _res;
19431 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019433 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019434 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019437 if (_n == 0 || p->error_indicator) {
19438 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019439 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019440 return NULL;
19441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019442 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19443 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019444 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019445 p->error_indicator = 1;
19446 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019447 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019448 return NULL;
19449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019450 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19451 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019452 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019453 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019454 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019455}
19456
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019457// _loop0_66: param_maybe_default
19458static asdl_seq *
19459_loop0_66_rule(Parser *p)
19460{
19461 D(p->level++);
19462 if (p->error_indicator) {
19463 D(p->level--);
19464 return NULL;
19465 }
19466 void *_res = NULL;
19467 int _mark = p->mark;
19468 int _start_mark = p->mark;
19469 void **_children = PyMem_Malloc(sizeof(void *));
19470 if (!_children) {
19471 p->error_indicator = 1;
19472 PyErr_NoMemory();
19473 D(p->level--);
19474 return NULL;
19475 }
19476 ssize_t _children_capacity = 1;
19477 ssize_t _n = 0;
19478 { // param_maybe_default
19479 if (p->error_indicator) {
19480 D(p->level--);
19481 return NULL;
19482 }
19483 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19484 NameDefaultPair* param_maybe_default_var;
19485 while (
19486 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19487 )
19488 {
19489 _res = param_maybe_default_var;
19490 if (_n == _children_capacity) {
19491 _children_capacity *= 2;
19492 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19493 if (!_new_children) {
19494 p->error_indicator = 1;
19495 PyErr_NoMemory();
19496 D(p->level--);
19497 return NULL;
19498 }
19499 _children = _new_children;
19500 }
19501 _children[_n++] = _res;
19502 _mark = p->mark;
19503 }
19504 p->mark = _mark;
19505 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19507 }
19508 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19509 if (!_seq) {
19510 PyMem_Free(_children);
19511 p->error_indicator = 1;
19512 PyErr_NoMemory();
19513 D(p->level--);
19514 return NULL;
19515 }
19516 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19517 PyMem_Free(_children);
19518 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19519 D(p->level--);
19520 return _seq;
19521}
19522
19523// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019524static asdl_seq *
19525_loop1_67_rule(Parser *p)
19526{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019527 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019529 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019530 return NULL;
19531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019532 void *_res = NULL;
19533 int _mark = p->mark;
19534 int _start_mark = p->mark;
19535 void **_children = PyMem_Malloc(sizeof(void *));
19536 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019537 p->error_indicator = 1;
19538 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019539 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019540 return NULL;
19541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019542 ssize_t _children_capacity = 1;
19543 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019544 { // param_maybe_default
19545 if (p->error_indicator) {
19546 D(p->level--);
19547 return NULL;
19548 }
19549 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19550 NameDefaultPair* param_maybe_default_var;
19551 while (
19552 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19553 )
19554 {
19555 _res = param_maybe_default_var;
19556 if (_n == _children_capacity) {
19557 _children_capacity *= 2;
19558 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19559 if (!_new_children) {
19560 p->error_indicator = 1;
19561 PyErr_NoMemory();
19562 D(p->level--);
19563 return NULL;
19564 }
19565 _children = _new_children;
19566 }
19567 _children[_n++] = _res;
19568 _mark = p->mark;
19569 }
19570 p->mark = _mark;
19571 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19573 }
19574 if (_n == 0 || p->error_indicator) {
19575 PyMem_Free(_children);
19576 D(p->level--);
19577 return NULL;
19578 }
19579 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19580 if (!_seq) {
19581 PyMem_Free(_children);
19582 p->error_indicator = 1;
19583 PyErr_NoMemory();
19584 D(p->level--);
19585 return NULL;
19586 }
19587 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19588 PyMem_Free(_children);
19589 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19590 D(p->level--);
19591 return _seq;
19592}
19593
19594// _loop1_68: ('@' named_expression NEWLINE)
19595static asdl_seq *
19596_loop1_68_rule(Parser *p)
19597{
19598 D(p->level++);
19599 if (p->error_indicator) {
19600 D(p->level--);
19601 return NULL;
19602 }
19603 void *_res = NULL;
19604 int _mark = p->mark;
19605 int _start_mark = p->mark;
19606 void **_children = PyMem_Malloc(sizeof(void *));
19607 if (!_children) {
19608 p->error_indicator = 1;
19609 PyErr_NoMemory();
19610 D(p->level--);
19611 return NULL;
19612 }
19613 ssize_t _children_capacity = 1;
19614 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019615 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019616 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019617 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019618 return NULL;
19619 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019620 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo87c87b52020-11-18 23:44:30 +000019621 void *_tmp_140_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019622 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000019623 (_tmp_140_var = _tmp_140_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019624 )
19625 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000019626 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019627 if (_n == _children_capacity) {
19628 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019629 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19630 if (!_new_children) {
19631 p->error_indicator = 1;
19632 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019633 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019634 return NULL;
19635 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019636 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019638 _children[_n++] = _res;
19639 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019641 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019642 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019645 if (_n == 0 || p->error_indicator) {
19646 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019647 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019648 return NULL;
19649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019650 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19651 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019652 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019653 p->error_indicator = 1;
19654 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019655 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019656 return NULL;
19657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019658 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19659 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019660 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019661 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019662 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019663}
19664
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019665// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019666static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019667_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019668{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019669 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019672 return NULL;
19673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019674 void * _res = NULL;
19675 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019676 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019678 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019679 return NULL;
19680 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019681 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019682 Token * _literal;
19683 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019684 void *z;
19685 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019686 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019687 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019688 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019689 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019690 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019691 )
19692 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019693 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019694 _res = z;
19695 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019696 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019698 return NULL;
19699 }
19700 goto done;
19701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019702 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019703 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019706 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019707 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019708 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019709 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019710}
19711
Pablo Galindo87c87b52020-11-18 23:44:30 +000019712// _loop1_70: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019713static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000019714_loop1_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019715{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019716 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019719 return NULL;
19720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019721 void *_res = NULL;
19722 int _mark = p->mark;
19723 int _start_mark = p->mark;
19724 void **_children = PyMem_Malloc(sizeof(void *));
19725 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019726 p->error_indicator = 1;
19727 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019728 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019729 return NULL;
19730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019731 ssize_t _children_capacity = 1;
19732 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019733 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019735 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019736 return NULL;
19737 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000019738 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
19739 void *_tmp_141_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019740 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000019741 (_tmp_141_var = _tmp_141_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019742 )
19743 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000019744 _res = _tmp_141_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019745 if (_n == _children_capacity) {
19746 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019747 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19748 if (!_new_children) {
19749 p->error_indicator = 1;
19750 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019752 return NULL;
19753 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019754 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019756 _children[_n++] = _res;
19757 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019759 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000019760 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019763 if (_n == 0 || p->error_indicator) {
19764 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019766 return NULL;
19767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019768 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19769 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019770 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019771 p->error_indicator = 1;
19772 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019774 return NULL;
19775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019776 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19777 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000019778 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019779 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019780 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019781}
19782
Pablo Galindo87c87b52020-11-18 23:44:30 +000019783// _loop0_72: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019784static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000019785_loop0_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019786{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019787 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019790 return NULL;
19791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019792 void *_res = NULL;
19793 int _mark = p->mark;
19794 int _start_mark = p->mark;
19795 void **_children = PyMem_Malloc(sizeof(void *));
19796 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019797 p->error_indicator = 1;
19798 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019800 return NULL;
19801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019802 ssize_t _children_capacity = 1;
19803 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019804 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019807 return NULL;
19808 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000019809 D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019810 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019811 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019812 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019814 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019815 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019816 )
19817 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019818 _res = elem;
19819 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019820 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019821 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019823 return NULL;
19824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019825 if (_n == _children_capacity) {
19826 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019827 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19828 if (!_new_children) {
19829 p->error_indicator = 1;
19830 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019832 return NULL;
19833 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019834 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019836 _children[_n++] = _res;
19837 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019839 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000019840 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019843 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19844 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019845 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019846 p->error_indicator = 1;
19847 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019848 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019849 return NULL;
19850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019851 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19852 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000019853 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019854 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019855 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019856}
19857
Pablo Galindo87c87b52020-11-18 23:44:30 +000019858// _gather_71: star_named_expression _loop0_72
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019859static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000019860_gather_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019861{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019862 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019863 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019865 return NULL;
19866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019867 asdl_seq * _res = NULL;
19868 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000019869 { // star_named_expression _loop0_72
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019871 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019872 return NULL;
19873 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000019874 D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019875 expr_ty elem;
19876 asdl_seq * seq;
19877 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019878 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019879 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000019880 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019881 )
19882 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000019883 D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019884 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019885 goto done;
19886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019887 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000019888 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
19889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019891 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019892 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019893 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019894 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019895}
19896
Pablo Galindo87c87b52020-11-18 23:44:30 +000019897// _loop1_73: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019898static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000019899_loop1_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019900{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019901 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019904 return NULL;
19905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019906 void *_res = NULL;
19907 int _mark = p->mark;
19908 int _start_mark = p->mark;
19909 void **_children = PyMem_Malloc(sizeof(void *));
19910 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019911 p->error_indicator = 1;
19912 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019913 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019914 return NULL;
19915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019916 ssize_t _children_capacity = 1;
19917 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019918 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019920 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019921 return NULL;
19922 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000019923 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
19924 void *_tmp_142_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019925 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000019926 (_tmp_142_var = _tmp_142_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019927 )
19928 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000019929 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019930 if (_n == _children_capacity) {
19931 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019932 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19933 if (!_new_children) {
19934 p->error_indicator = 1;
19935 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019936 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019937 return NULL;
19938 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019939 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019941 _children[_n++] = _res;
19942 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019944 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000019945 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019948 if (_n == 0 || p->error_indicator) {
19949 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019951 return NULL;
19952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019953 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19954 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019955 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019956 p->error_indicator = 1;
19957 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019958 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019959 return NULL;
19960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019961 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19962 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000019963 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019964 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019965 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019966}
19967
Pablo Galindo87c87b52020-11-18 23:44:30 +000019968// _loop0_74: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019969static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000019970_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019971{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019972 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019974 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019975 return NULL;
19976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019977 void *_res = NULL;
19978 int _mark = p->mark;
19979 int _start_mark = p->mark;
19980 void **_children = PyMem_Malloc(sizeof(void *));
19981 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019982 p->error_indicator = 1;
19983 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019984 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019985 return NULL;
19986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019987 ssize_t _children_capacity = 1;
19988 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019989 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019992 return NULL;
19993 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000019994 D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019995 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019996 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019997 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019998 )
19999 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020000 _res = lambda_param_no_default_var;
20001 if (_n == _children_capacity) {
20002 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020003 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20004 if (!_new_children) {
20005 p->error_indicator = 1;
20006 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020007 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020008 return NULL;
20009 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020010 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020012 _children[_n++] = _res;
20013 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020015 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020016 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020019 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20020 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020021 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020022 p->error_indicator = 1;
20023 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020024 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020025 return NULL;
20026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020027 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20028 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000020029 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020030 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020031 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020032}
20033
Pablo Galindo87c87b52020-11-18 23:44:30 +000020034// _loop0_75: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020035static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000020036_loop0_75_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020037{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020038 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020040 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020041 return NULL;
20042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020043 void *_res = NULL;
20044 int _mark = p->mark;
20045 int _start_mark = p->mark;
20046 void **_children = PyMem_Malloc(sizeof(void *));
20047 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020048 p->error_indicator = 1;
20049 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020050 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020051 return NULL;
20052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020053 ssize_t _children_capacity = 1;
20054 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020055 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020057 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020058 return NULL;
20059 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020060 D(fprintf(stderr, "%*c> _loop0_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020061 NameDefaultPair* lambda_param_with_default_var;
20062 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020063 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020064 )
20065 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020066 _res = lambda_param_with_default_var;
20067 if (_n == _children_capacity) {
20068 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020069 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20070 if (!_new_children) {
20071 p->error_indicator = 1;
20072 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020073 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020074 return NULL;
20075 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020076 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020078 _children[_n++] = _res;
20079 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020081 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020082 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020085 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20086 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020087 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020088 p->error_indicator = 1;
20089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020090 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020091 return NULL;
20092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020093 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20094 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000020095 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20096 D(p->level--);
20097 return _seq;
20098}
20099
20100// _loop0_76: lambda_param_with_default
20101static asdl_seq *
20102_loop0_76_rule(Parser *p)
20103{
20104 D(p->level++);
20105 if (p->error_indicator) {
20106 D(p->level--);
20107 return NULL;
20108 }
20109 void *_res = NULL;
20110 int _mark = p->mark;
20111 int _start_mark = p->mark;
20112 void **_children = PyMem_Malloc(sizeof(void *));
20113 if (!_children) {
20114 p->error_indicator = 1;
20115 PyErr_NoMemory();
20116 D(p->level--);
20117 return NULL;
20118 }
20119 ssize_t _children_capacity = 1;
20120 ssize_t _n = 0;
20121 { // lambda_param_with_default
20122 if (p->error_indicator) {
20123 D(p->level--);
20124 return NULL;
20125 }
20126 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20127 NameDefaultPair* lambda_param_with_default_var;
20128 while (
20129 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20130 )
20131 {
20132 _res = lambda_param_with_default_var;
20133 if (_n == _children_capacity) {
20134 _children_capacity *= 2;
20135 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20136 if (!_new_children) {
20137 p->error_indicator = 1;
20138 PyErr_NoMemory();
20139 D(p->level--);
20140 return NULL;
20141 }
20142 _children = _new_children;
20143 }
20144 _children[_n++] = _res;
20145 _mark = p->mark;
20146 }
20147 p->mark = _mark;
20148 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20150 }
20151 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20152 if (!_seq) {
20153 PyMem_Free(_children);
20154 p->error_indicator = 1;
20155 PyErr_NoMemory();
20156 D(p->level--);
20157 return NULL;
20158 }
20159 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20160 PyMem_Free(_children);
20161 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20162 D(p->level--);
20163 return _seq;
20164}
20165
20166// _loop1_77: lambda_param_no_default
20167static asdl_seq *
20168_loop1_77_rule(Parser *p)
20169{
20170 D(p->level++);
20171 if (p->error_indicator) {
20172 D(p->level--);
20173 return NULL;
20174 }
20175 void *_res = NULL;
20176 int _mark = p->mark;
20177 int _start_mark = p->mark;
20178 void **_children = PyMem_Malloc(sizeof(void *));
20179 if (!_children) {
20180 p->error_indicator = 1;
20181 PyErr_NoMemory();
20182 D(p->level--);
20183 return NULL;
20184 }
20185 ssize_t _children_capacity = 1;
20186 ssize_t _n = 0;
20187 { // lambda_param_no_default
20188 if (p->error_indicator) {
20189 D(p->level--);
20190 return NULL;
20191 }
20192 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20193 arg_ty lambda_param_no_default_var;
20194 while (
20195 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20196 )
20197 {
20198 _res = lambda_param_no_default_var;
20199 if (_n == _children_capacity) {
20200 _children_capacity *= 2;
20201 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20202 if (!_new_children) {
20203 p->error_indicator = 1;
20204 PyErr_NoMemory();
20205 D(p->level--);
20206 return NULL;
20207 }
20208 _children = _new_children;
20209 }
20210 _children[_n++] = _res;
20211 _mark = p->mark;
20212 }
20213 p->mark = _mark;
20214 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20216 }
20217 if (_n == 0 || p->error_indicator) {
20218 PyMem_Free(_children);
20219 D(p->level--);
20220 return NULL;
20221 }
20222 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20223 if (!_seq) {
20224 PyMem_Free(_children);
20225 p->error_indicator = 1;
20226 PyErr_NoMemory();
20227 D(p->level--);
20228 return NULL;
20229 }
20230 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20231 PyMem_Free(_children);
20232 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020233 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020234 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020235}
20236
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020237// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020238static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020239_loop0_78_rule(Parser *p)
20240{
20241 D(p->level++);
20242 if (p->error_indicator) {
20243 D(p->level--);
20244 return NULL;
20245 }
20246 void *_res = NULL;
20247 int _mark = p->mark;
20248 int _start_mark = p->mark;
20249 void **_children = PyMem_Malloc(sizeof(void *));
20250 if (!_children) {
20251 p->error_indicator = 1;
20252 PyErr_NoMemory();
20253 D(p->level--);
20254 return NULL;
20255 }
20256 ssize_t _children_capacity = 1;
20257 ssize_t _n = 0;
20258 { // lambda_param_with_default
20259 if (p->error_indicator) {
20260 D(p->level--);
20261 return NULL;
20262 }
20263 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20264 NameDefaultPair* lambda_param_with_default_var;
20265 while (
20266 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20267 )
20268 {
20269 _res = lambda_param_with_default_var;
20270 if (_n == _children_capacity) {
20271 _children_capacity *= 2;
20272 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20273 if (!_new_children) {
20274 p->error_indicator = 1;
20275 PyErr_NoMemory();
20276 D(p->level--);
20277 return NULL;
20278 }
20279 _children = _new_children;
20280 }
20281 _children[_n++] = _res;
20282 _mark = p->mark;
20283 }
20284 p->mark = _mark;
20285 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20287 }
20288 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20289 if (!_seq) {
20290 PyMem_Free(_children);
20291 p->error_indicator = 1;
20292 PyErr_NoMemory();
20293 D(p->level--);
20294 return NULL;
20295 }
20296 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20297 PyMem_Free(_children);
20298 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20299 D(p->level--);
20300 return _seq;
20301}
20302
Pablo Galindo87c87b52020-11-18 23:44:30 +000020303// _loop1_79: lambda_param_with_default
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020304static asdl_seq *
20305_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020307 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020309 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020310 return NULL;
20311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020312 void *_res = NULL;
20313 int _mark = p->mark;
20314 int _start_mark = p->mark;
20315 void **_children = PyMem_Malloc(sizeof(void *));
20316 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020317 p->error_indicator = 1;
20318 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20323 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020324 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020327 return NULL;
20328 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020329 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20330 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020331 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020332 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020333 )
20334 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020335 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020336 if (_n == _children_capacity) {
20337 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020338 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20339 if (!_new_children) {
20340 p->error_indicator = 1;
20341 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020342 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020343 return NULL;
20344 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020345 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020347 _children[_n++] = _res;
20348 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020350 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020351 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000020352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020354 if (_n == 0 || p->error_indicator) {
20355 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020356 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020357 return NULL;
20358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020359 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20360 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020361 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020362 p->error_indicator = 1;
20363 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020364 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020365 return NULL;
20366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020367 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20368 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020369 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020370 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020371 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020372}
20373
Pablo Galindo87c87b52020-11-18 23:44:30 +000020374// _loop1_80: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020375static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000020376_loop1_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020377{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020378 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020380 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020381 return NULL;
20382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020383 void *_res = NULL;
20384 int _mark = p->mark;
20385 int _start_mark = p->mark;
20386 void **_children = PyMem_Malloc(sizeof(void *));
20387 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020388 p->error_indicator = 1;
20389 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20394 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020395 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020396 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020397 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020398 return NULL;
20399 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020400 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20401 arg_ty lambda_param_no_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020402 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020403 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020404 )
20405 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020406 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020407 if (_n == _children_capacity) {
20408 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020409 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20410 if (!_new_children) {
20411 p->error_indicator = 1;
20412 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020413 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020414 return NULL;
20415 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020416 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020418 _children[_n++] = _res;
20419 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020421 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020422 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20424 }
20425 if (_n == 0 || p->error_indicator) {
20426 PyMem_Free(_children);
20427 D(p->level--);
20428 return NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070020429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020430 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20431 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020432 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020433 p->error_indicator = 1;
20434 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020435 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020436 return NULL;
20437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020438 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20439 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000020440 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020441 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020442 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020443}
20444
Pablo Galindo87c87b52020-11-18 23:44:30 +000020445// _loop1_81: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020446static asdl_seq *
20447_loop1_81_rule(Parser *p)
20448{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020449 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020451 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020452 return NULL;
20453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020454 void *_res = NULL;
20455 int _mark = p->mark;
20456 int _start_mark = p->mark;
20457 void **_children = PyMem_Malloc(sizeof(void *));
20458 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020459 p->error_indicator = 1;
20460 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020461 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020462 return NULL;
20463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020464 ssize_t _children_capacity = 1;
20465 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020466 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020467 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020468 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020469 return NULL;
20470 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020471 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20472 arg_ty lambda_param_no_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020473 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020474 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020475 )
20476 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020477 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020478 if (_n == _children_capacity) {
20479 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020480 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20481 if (!_new_children) {
20482 p->error_indicator = 1;
20483 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020484 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020485 return NULL;
20486 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020487 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020489 _children[_n++] = _res;
20490 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020492 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020493 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000020494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020496 if (_n == 0 || p->error_indicator) {
20497 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020498 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020499 return NULL;
20500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020501 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20502 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020503 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020504 p->error_indicator = 1;
20505 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020506 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020507 return NULL;
20508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020509 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20510 PyMem_Free(_children);
20511 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020512 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020513 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020514}
20515
Pablo Galindo87c87b52020-11-18 23:44:30 +000020516// _loop0_82: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020517static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000020518_loop0_82_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020519{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020520 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020522 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020523 return NULL;
20524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020525 void *_res = NULL;
20526 int _mark = p->mark;
20527 int _start_mark = p->mark;
20528 void **_children = PyMem_Malloc(sizeof(void *));
20529 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020530 p->error_indicator = 1;
20531 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020532 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020533 return NULL;
20534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020535 ssize_t _children_capacity = 1;
20536 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020537 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020539 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020540 return NULL;
20541 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020542 D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020543 arg_ty lambda_param_no_default_var;
20544 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020545 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020546 )
20547 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020548 _res = lambda_param_no_default_var;
20549 if (_n == _children_capacity) {
20550 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020551 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20552 if (!_new_children) {
20553 p->error_indicator = 1;
20554 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020555 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020556 return NULL;
20557 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020558 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020560 _children[_n++] = _res;
20561 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020563 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020564 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020567 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20568 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020569 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020570 p->error_indicator = 1;
20571 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020572 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020573 return NULL;
20574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020575 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20576 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000020577 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020578 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020579 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020580}
20581
Pablo Galindo87c87b52020-11-18 23:44:30 +000020582// _loop1_83: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020583static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020584_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020585{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020586 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020587 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020588 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020589 return NULL;
20590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020591 void *_res = NULL;
20592 int _mark = p->mark;
20593 int _start_mark = p->mark;
20594 void **_children = PyMem_Malloc(sizeof(void *));
20595 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020596 p->error_indicator = 1;
20597 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20602 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020603 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020604 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020605 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020606 return NULL;
20607 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020608 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20609 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020610 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020611 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020612 )
20613 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020614 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020615 if (_n == _children_capacity) {
20616 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020617 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20618 if (!_new_children) {
20619 p->error_indicator = 1;
20620 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020621 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020622 return NULL;
20623 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020624 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020626 _children[_n++] = _res;
20627 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020629 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020630 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000020631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020633 if (_n == 0 || p->error_indicator) {
20634 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020635 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020636 return NULL;
20637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020638 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20639 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020640 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020641 p->error_indicator = 1;
20642 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020643 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020644 return NULL;
20645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020646 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20647 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020648 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020649 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020650 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020651}
20652
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020653// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020654static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020655_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020656{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020657 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020659 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020660 return NULL;
20661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020662 void *_res = NULL;
20663 int _mark = p->mark;
20664 int _start_mark = p->mark;
20665 void **_children = PyMem_Malloc(sizeof(void *));
20666 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020667 p->error_indicator = 1;
20668 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20673 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020674 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020676 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020677 return NULL;
20678 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020679 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 -070020680 arg_ty lambda_param_no_default_var;
20681 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020682 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020683 )
20684 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020685 _res = lambda_param_no_default_var;
20686 if (_n == _children_capacity) {
20687 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020688 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20689 if (!_new_children) {
20690 p->error_indicator = 1;
20691 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020692 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020693 return NULL;
20694 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020695 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020697 _children[_n++] = _res;
20698 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020700 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020701 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020704 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20705 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020706 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020707 p->error_indicator = 1;
20708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020709 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020710 return NULL;
20711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020712 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20713 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020714 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020715 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020716 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020717}
20718
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020719// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020720static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020721_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020722{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020723 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020724 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020725 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020726 return NULL;
20727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020728 void *_res = NULL;
20729 int _mark = p->mark;
20730 int _start_mark = p->mark;
20731 void **_children = PyMem_Malloc(sizeof(void *));
20732 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020733 p->error_indicator = 1;
20734 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20739 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020740 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020743 return NULL;
20744 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020745 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 -070020746 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020747 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020748 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020749 )
20750 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020751 _res = lambda_param_with_default_var;
20752 if (_n == _children_capacity) {
20753 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020754 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20755 if (!_new_children) {
20756 p->error_indicator = 1;
20757 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020759 return NULL;
20760 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020761 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020763 _children[_n++] = _res;
20764 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020766 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020767 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020770 if (_n == 0 || p->error_indicator) {
20771 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020773 return NULL;
20774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020775 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20776 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020777 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020778 p->error_indicator = 1;
20779 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020780 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020781 return NULL;
20782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020783 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20784 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020785 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020786 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020787 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020788}
20789
Pablo Galindo87c87b52020-11-18 23:44:30 +000020790// _loop0_86: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020791static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020792_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020793{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020794 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020796 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020797 return NULL;
20798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020799 void *_res = NULL;
20800 int _mark = p->mark;
20801 int _start_mark = p->mark;
20802 void **_children = PyMem_Malloc(sizeof(void *));
20803 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020804 p->error_indicator = 1;
20805 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20810 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020811 { // lambda_param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020813 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020814 return NULL;
20815 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020816 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20817 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020818 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020819 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020820 )
20821 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020822 _res = lambda_param_maybe_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020823 if (_n == _children_capacity) {
20824 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020825 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20826 if (!_new_children) {
20827 p->error_indicator = 1;
20828 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020829 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020830 return NULL;
20831 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020832 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020834 _children[_n++] = _res;
20835 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020837 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020838 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000020839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020841 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20842 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020843 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020844 p->error_indicator = 1;
20845 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020847 return NULL;
20848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020849 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20850 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020851 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020852 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020853 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020854}
20855
Pablo Galindo87c87b52020-11-18 23:44:30 +000020856// _loop1_87: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020857static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020858_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020860 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020863 return NULL;
20864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020865 void *_res = NULL;
20866 int _mark = p->mark;
20867 int _start_mark = p->mark;
20868 void **_children = PyMem_Malloc(sizeof(void *));
20869 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020870 p->error_indicator = 1;
20871 PyErr_NoMemory();
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 ssize_t _children_capacity = 1;
20876 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020877 { // lambda_param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020879 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020880 return NULL;
20881 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020882 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20883 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020884 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020885 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020886 )
20887 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020888 _res = lambda_param_maybe_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020889 if (_n == _children_capacity) {
20890 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020891 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20892 if (!_new_children) {
20893 p->error_indicator = 1;
20894 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020895 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020896 return NULL;
20897 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020898 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020900 _children[_n++] = _res;
20901 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020903 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020904 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000020905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020907 if (_n == 0 || p->error_indicator) {
20908 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020909 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020910 return NULL;
20911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020912 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20913 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020914 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020915 p->error_indicator = 1;
20916 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020918 return NULL;
20919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020920 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20921 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020922 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020923 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020924 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020925}
20926
Pablo Galindo87c87b52020-11-18 23:44:30 +000020927// _loop1_88: ('or' conjunction)
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020928static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000020929_loop1_88_rule(Parser *p)
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020930{
20931 D(p->level++);
20932 if (p->error_indicator) {
20933 D(p->level--);
20934 return NULL;
20935 }
20936 void *_res = NULL;
20937 int _mark = p->mark;
20938 int _start_mark = p->mark;
20939 void **_children = PyMem_Malloc(sizeof(void *));
20940 if (!_children) {
20941 p->error_indicator = 1;
20942 PyErr_NoMemory();
20943 D(p->level--);
20944 return NULL;
20945 }
20946 ssize_t _children_capacity = 1;
20947 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020948 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020949 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020950 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020951 return NULL;
20952 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000020953 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
20954 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020955 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000020956 (_tmp_143_var = _tmp_143_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020957 )
20958 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000020959 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020960 if (_n == _children_capacity) {
20961 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020962 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20963 if (!_new_children) {
20964 p->error_indicator = 1;
20965 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020966 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020967 return NULL;
20968 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020969 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020971 _children[_n++] = _res;
20972 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020974 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000020975 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020978 if (_n == 0 || p->error_indicator) {
20979 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020981 return NULL;
20982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020983 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20984 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020985 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020986 p->error_indicator = 1;
20987 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020988 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020989 return NULL;
20990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020991 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20992 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000020993 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020994 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020995 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020996}
20997
Pablo Galindo87c87b52020-11-18 23:44:30 +000020998// _loop1_89: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020999static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021000_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021001{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021002 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021005 return NULL;
21006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021007 void *_res = NULL;
21008 int _mark = p->mark;
21009 int _start_mark = p->mark;
21010 void **_children = PyMem_Malloc(sizeof(void *));
21011 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021012 p->error_indicator = 1;
21013 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021015 return NULL;
21016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021017 ssize_t _children_capacity = 1;
21018 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021019 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021020 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021021 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021022 return NULL;
21023 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021024 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
21025 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021026 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000021027 (_tmp_144_var = _tmp_144_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021028 )
21029 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021030 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021031 if (_n == _children_capacity) {
21032 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021033 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21034 if (!_new_children) {
21035 p->error_indicator = 1;
21036 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021038 return NULL;
21039 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021040 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021042 _children[_n++] = _res;
21043 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021045 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021046 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021049 if (_n == 0 || p->error_indicator) {
21050 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021051 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021052 return NULL;
21053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021054 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21055 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021056 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021057 p->error_indicator = 1;
21058 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021060 return NULL;
21061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021062 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21063 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021064 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021065 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021066 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021067}
21068
Pablo Galindo87c87b52020-11-18 23:44:30 +000021069// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021070static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021071_loop1_90_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021072{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021073 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021074 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021076 return NULL;
21077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021078 void *_res = NULL;
21079 int _mark = p->mark;
21080 int _start_mark = p->mark;
21081 void **_children = PyMem_Malloc(sizeof(void *));
21082 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021083 p->error_indicator = 1;
21084 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021085 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021086 return NULL;
21087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021088 ssize_t _children_capacity = 1;
21089 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021090 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021093 return NULL;
21094 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021095 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021096 CmpopExprPair* compare_op_bitwise_or_pair_var;
21097 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021098 (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 +010021099 )
21100 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021101 _res = compare_op_bitwise_or_pair_var;
21102 if (_n == _children_capacity) {
21103 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021104 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21105 if (!_new_children) {
21106 p->error_indicator = 1;
21107 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021108 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021109 return NULL;
21110 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021111 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021113 _children[_n++] = _res;
21114 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021116 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021117 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021120 if (_n == 0 || p->error_indicator) {
21121 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021122 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021123 return NULL;
21124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021125 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21126 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021127 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021128 p->error_indicator = 1;
21129 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021130 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021131 return NULL;
21132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021133 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21134 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021135 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021136 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021137 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021138}
21139
Pablo Galindo87c87b52020-11-18 23:44:30 +000021140// _tmp_91: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021141static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021142_tmp_91_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021143{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021144 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021145 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021146 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021147 return NULL;
21148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021149 void * _res = NULL;
21150 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021151 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021153 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021154 return NULL;
21155 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021156 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021157 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021158 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021159 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021160 )
21161 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021162 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoddcd57e2020-10-31 00:40:42 +000021163 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021164 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021165 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021166 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021167 return NULL;
21168 }
21169 goto done;
21170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021171 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021172 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021175 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021176 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021177 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021178 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021179}
21180
Pablo Galindo87c87b52020-11-18 23:44:30 +000021181// _loop0_93: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021182static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021183_loop0_93_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021184{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021185 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021188 return NULL;
21189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021190 void *_res = NULL;
21191 int _mark = p->mark;
21192 int _start_mark = p->mark;
21193 void **_children = PyMem_Malloc(sizeof(void *));
21194 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021195 p->error_indicator = 1;
21196 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021198 return NULL;
21199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021200 ssize_t _children_capacity = 1;
21201 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021202 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021204 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021205 return NULL;
21206 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021207 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021208 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021209 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021210 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021211 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021212 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021213 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021214 )
21215 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021216 _res = elem;
21217 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021218 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021219 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021220 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021221 return NULL;
21222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021223 if (_n == _children_capacity) {
21224 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021225 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21226 if (!_new_children) {
21227 p->error_indicator = 1;
21228 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021229 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021230 return NULL;
21231 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021232 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021234 _children[_n++] = _res;
21235 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021237 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021238 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021241 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21242 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021243 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021244 p->error_indicator = 1;
21245 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021247 return NULL;
21248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021249 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21250 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021251 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021252 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021253 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021254}
21255
Pablo Galindo87c87b52020-11-18 23:44:30 +000021256// _gather_92: slice _loop0_93
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021257static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021258_gather_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021259{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021260 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021261 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021262 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021263 return NULL;
21264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021265 asdl_seq * _res = NULL;
21266 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021267 { // slice _loop0_93
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021268 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021269 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021270 return NULL;
21271 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021272 D(fprintf(stderr, "%*c> _gather_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021273 expr_ty elem;
21274 asdl_seq * seq;
21275 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021276 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021277 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000021278 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021279 )
21280 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021281 D(fprintf(stderr, "%*c+ _gather_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021282 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021283 goto done;
21284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021285 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021286 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021289 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021290 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021291 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021292 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021293}
21294
Pablo Galindo87c87b52020-11-18 23:44:30 +000021295// _tmp_94: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021296static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021297_tmp_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021298{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021299 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021302 return NULL;
21303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021304 void * _res = NULL;
21305 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021306 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021309 return NULL;
21310 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021311 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021312 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021313 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021314 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021315 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021316 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021317 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021318 )
21319 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021320 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021321 _res = d;
21322 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021325 return NULL;
21326 }
21327 goto done;
21328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021329 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021330 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021333 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021334 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021335 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021336 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021337}
21338
Pablo Galindo87c87b52020-11-18 23:44:30 +000021339// _tmp_95: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021340static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021341_tmp_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021342{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021343 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021346 return NULL;
21347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021348 void * _res = NULL;
21349 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021350 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021352 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021353 return NULL;
21354 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021355 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021356 expr_ty tuple_var;
21357 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021358 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021359 )
21360 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021361 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021362 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021363 goto done;
21364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021365 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021366 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021368 }
21369 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021370 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021371 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021372 return NULL;
21373 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021374 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021375 expr_ty group_var;
21376 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021377 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021378 )
21379 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021380 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021381 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021382 goto done;
21383 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021384 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021385 D(fprintf(stderr, "%*c%s _tmp_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, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021387 }
21388 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021389 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021390 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021391 return NULL;
21392 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021393 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021394 expr_ty genexp_var;
21395 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021396 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021397 )
21398 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021399 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021400 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021401 goto done;
21402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021403 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021404 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021407 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021408 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021409 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021410 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021411}
21412
Pablo Galindo87c87b52020-11-18 23:44:30 +000021413// _tmp_96: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021414static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021415_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021416{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021417 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021418 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021420 return NULL;
21421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021422 void * _res = NULL;
21423 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021424 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021426 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021427 return NULL;
21428 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021429 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021430 expr_ty list_var;
21431 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021432 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021433 )
21434 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021435 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021436 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021437 goto done;
21438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021439 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021440 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021442 }
21443 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021444 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021445 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021446 return NULL;
21447 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021448 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021449 expr_ty listcomp_var;
21450 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021451 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021452 )
21453 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021454 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021455 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021456 goto done;
21457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021458 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021459 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021462 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021463 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021464 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021465 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021466}
21467
Pablo Galindo87c87b52020-11-18 23:44:30 +000021468// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021469static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021470_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021471{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021472 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021473 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021474 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021475 return NULL;
21476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021477 void * _res = NULL;
21478 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021479 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021481 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021482 return NULL;
21483 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021484 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021485 expr_ty dict_var;
21486 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021487 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021488 )
21489 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021490 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021491 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021492 goto done;
21493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021494 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021495 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021497 }
21498 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021500 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021501 return NULL;
21502 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021503 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021504 expr_ty set_var;
21505 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021506 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021507 )
21508 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021509 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021510 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021511 goto done;
21512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021513 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021514 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021516 }
21517 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021518 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021519 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021520 return NULL;
21521 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021522 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021523 expr_ty dictcomp_var;
21524 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021525 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021526 )
21527 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021528 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021529 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021530 goto done;
21531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021532 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021533 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021535 }
21536 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021538 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021539 return NULL;
21540 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021541 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021542 expr_ty setcomp_var;
21543 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021544 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021545 )
21546 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021547 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021548 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021549 goto done;
21550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021551 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021552 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021555 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021556 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021557 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021558 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021559}
21560
Pablo Galindo87c87b52020-11-18 23:44:30 +000021561// _loop1_98: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021562static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021563_loop1_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021564{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021565 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021568 return NULL;
21569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021570 void *_res = NULL;
21571 int _mark = p->mark;
21572 int _start_mark = p->mark;
21573 void **_children = PyMem_Malloc(sizeof(void *));
21574 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021575 p->error_indicator = 1;
21576 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021577 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021578 return NULL;
21579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021580 ssize_t _children_capacity = 1;
21581 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021582 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021584 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021585 return NULL;
21586 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021587 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021588 expr_ty string_var;
21589 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021590 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021591 )
21592 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021593 _res = string_var;
21594 if (_n == _children_capacity) {
21595 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021596 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21597 if (!_new_children) {
21598 p->error_indicator = 1;
21599 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021601 return NULL;
21602 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021603 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021605 _children[_n++] = _res;
21606 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021608 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021609 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021612 if (_n == 0 || p->error_indicator) {
21613 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021614 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021615 return NULL;
21616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021617 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21618 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021619 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021620 p->error_indicator = 1;
21621 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021623 return NULL;
21624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021625 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21626 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021627 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021628 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021629 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021630}
21631
Pablo Galindo87c87b52020-11-18 23:44:30 +000021632// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021633static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021634_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021635{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021636 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021639 return NULL;
21640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021641 void * _res = NULL;
21642 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021643 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021644 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021645 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021646 return NULL;
21647 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021648 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021649 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021650 expr_ty y;
21651 void *z;
21652 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021653 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021654 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021655 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021656 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021657 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021658 )
21659 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021660 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021661 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21662 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021665 return NULL;
21666 }
21667 goto done;
21668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021669 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021670 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021673 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021674 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021675 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021676 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021677}
21678
Pablo Galindo87c87b52020-11-18 23:44:30 +000021679// _tmp_100: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021680static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021681_tmp_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021682{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021683 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021685 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021686 return NULL;
21687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021688 void * _res = NULL;
21689 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021690 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021691 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021692 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021693 return NULL;
21694 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021695 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021696 expr_ty yield_expr_var;
21697 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021698 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021699 )
21700 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021701 D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021702 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021703 goto done;
21704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021705 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021706 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021708 }
21709 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021711 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021712 return NULL;
21713 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021714 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021715 expr_ty named_expression_var;
21716 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021717 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021718 )
21719 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021720 D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021721 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021722 goto done;
21723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021724 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021725 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021728 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021729 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021730 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021731 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021732}
21733
Pablo Galindo87c87b52020-11-18 23:44:30 +000021734// _loop0_102: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021735static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021736_loop0_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021737{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021738 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021741 return NULL;
21742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021743 void *_res = NULL;
21744 int _mark = p->mark;
21745 int _start_mark = p->mark;
21746 void **_children = PyMem_Malloc(sizeof(void *));
21747 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021748 p->error_indicator = 1;
21749 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021751 return NULL;
21752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021753 ssize_t _children_capacity = 1;
21754 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021755 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021758 return NULL;
21759 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021760 D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021761 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021762 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021763 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021764 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021765 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021766 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021767 )
21768 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021769 _res = elem;
21770 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021771 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021772 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021774 return NULL;
21775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021776 if (_n == _children_capacity) {
21777 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021778 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21779 if (!_new_children) {
21780 p->error_indicator = 1;
21781 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021782 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021783 return NULL;
21784 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021785 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021787 _children[_n++] = _res;
21788 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021790 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021791 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021794 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21795 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021796 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021797 p->error_indicator = 1;
21798 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021800 return NULL;
21801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021802 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21803 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021804 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021805 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021806 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021807}
21808
Pablo Galindo87c87b52020-11-18 23:44:30 +000021809// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021810static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021811_gather_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021812{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021813 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021815 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021816 return NULL;
21817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021818 asdl_seq * _res = NULL;
21819 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021820 { // double_starred_kvpair _loop0_102
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021822 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021823 return NULL;
21824 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021825 D(fprintf(stderr, "%*c> _gather_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021826 KeyValuePair* elem;
21827 asdl_seq * seq;
21828 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021829 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021830 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000021831 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021832 )
21833 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021834 D(fprintf(stderr, "%*c+ _gather_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021835 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021836 goto done;
21837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021838 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021839 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
21840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021842 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021843 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021844 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021845 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021846}
21847
Pablo Galindo87c87b52020-11-18 23:44:30 +000021848// _loop1_103: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021849static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021850_loop1_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021851{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021852 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021854 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021855 return NULL;
21856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021857 void *_res = NULL;
21858 int _mark = p->mark;
21859 int _start_mark = p->mark;
21860 void **_children = PyMem_Malloc(sizeof(void *));
21861 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021862 p->error_indicator = 1;
21863 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021865 return NULL;
21866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021867 ssize_t _children_capacity = 1;
21868 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021869 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021871 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021872 return NULL;
21873 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021874 D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021875 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021876 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021877 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021878 )
21879 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021880 _res = for_if_clause_var;
21881 if (_n == _children_capacity) {
21882 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021883 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21884 if (!_new_children) {
21885 p->error_indicator = 1;
21886 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021887 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021888 return NULL;
21889 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021890 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021892 _children[_n++] = _res;
21893 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021895 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021896 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021899 if (_n == 0 || p->error_indicator) {
21900 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021902 return NULL;
21903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021904 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21905 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021906 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021907 p->error_indicator = 1;
21908 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021909 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021910 return NULL;
21911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021912 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21913 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021914 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021915 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021916 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021917}
21918
Pablo Galindo87c87b52020-11-18 23:44:30 +000021919// _loop0_104: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070021920static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000021921_loop0_104_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070021922{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021923 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070021924 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021925 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070021926 return NULL;
21927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021928 void *_res = NULL;
21929 int _mark = p->mark;
21930 int _start_mark = p->mark;
21931 void **_children = PyMem_Malloc(sizeof(void *));
21932 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021933 p->error_indicator = 1;
21934 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021935 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021936 return NULL;
21937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021938 ssize_t _children_capacity = 1;
21939 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021940 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021942 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021943 return NULL;
21944 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000021945 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
21946 void *_tmp_145_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021947 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000021948 (_tmp_145_var = _tmp_145_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070021949 )
21950 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000021951 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021952 if (_n == _children_capacity) {
21953 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021954 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21955 if (!_new_children) {
21956 p->error_indicator = 1;
21957 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021958 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021959 return NULL;
21960 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021961 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021963 _children[_n++] = _res;
21964 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021966 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000021967 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021970 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21971 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021972 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021973 p->error_indicator = 1;
21974 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021975 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021976 return NULL;
21977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021978 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21979 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000021980 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021981 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021982 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021983}
21984
Pablo Galindo87c87b52020-11-18 23:44:30 +000021985// _loop0_105: ('if' disjunction)
21986static asdl_seq *
21987_loop0_105_rule(Parser *p)
21988{
21989 D(p->level++);
21990 if (p->error_indicator) {
21991 D(p->level--);
21992 return NULL;
21993 }
21994 void *_res = NULL;
21995 int _mark = p->mark;
21996 int _start_mark = p->mark;
21997 void **_children = PyMem_Malloc(sizeof(void *));
21998 if (!_children) {
21999 p->error_indicator = 1;
22000 PyErr_NoMemory();
22001 D(p->level--);
22002 return NULL;
22003 }
22004 ssize_t _children_capacity = 1;
22005 ssize_t _n = 0;
22006 { // ('if' disjunction)
22007 if (p->error_indicator) {
22008 D(p->level--);
22009 return NULL;
22010 }
22011 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
22012 void *_tmp_146_var;
22013 while (
22014 (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
22015 )
22016 {
22017 _res = _tmp_146_var;
22018 if (_n == _children_capacity) {
22019 _children_capacity *= 2;
22020 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22021 if (!_new_children) {
22022 p->error_indicator = 1;
22023 PyErr_NoMemory();
22024 D(p->level--);
22025 return NULL;
22026 }
22027 _children = _new_children;
22028 }
22029 _children[_n++] = _res;
22030 _mark = p->mark;
22031 }
22032 p->mark = _mark;
22033 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22035 }
22036 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22037 if (!_seq) {
22038 PyMem_Free(_children);
22039 p->error_indicator = 1;
22040 PyErr_NoMemory();
22041 D(p->level--);
22042 return NULL;
22043 }
22044 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22045 PyMem_Free(_children);
22046 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22047 D(p->level--);
22048 return _seq;
22049}
22050
22051// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022052static asdl_seq *
22053_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022054{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022055 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022057 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022058 return NULL;
22059 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022060 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022061 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022062 int _start_mark = p->mark;
22063 void **_children = PyMem_Malloc(sizeof(void *));
22064 if (!_children) {
22065 p->error_indicator = 1;
22066 PyErr_NoMemory();
22067 D(p->level--);
22068 return NULL;
22069 }
22070 ssize_t _children_capacity = 1;
22071 ssize_t _n = 0;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022072 { // ',' (starred_expression | named_expression !'=')
22073 if (p->error_indicator) {
22074 D(p->level--);
22075 return NULL;
22076 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022077 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022078 Token * _literal;
22079 void *elem;
22080 while (
22081 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22082 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000022083 (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022084 )
22085 {
22086 _res = elem;
22087 if (_res == NULL && PyErr_Occurred()) {
22088 p->error_indicator = 1;
22089 PyMem_Free(_children);
22090 D(p->level--);
22091 return NULL;
22092 }
22093 if (_n == _children_capacity) {
22094 _children_capacity *= 2;
22095 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22096 if (!_new_children) {
22097 p->error_indicator = 1;
22098 PyErr_NoMemory();
22099 D(p->level--);
22100 return NULL;
22101 }
22102 _children = _new_children;
22103 }
22104 _children[_n++] = _res;
22105 _mark = p->mark;
22106 }
22107 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022108 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22110 }
22111 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22112 if (!_seq) {
22113 PyMem_Free(_children);
22114 p->error_indicator = 1;
22115 PyErr_NoMemory();
22116 D(p->level--);
22117 return NULL;
22118 }
22119 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22120 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000022121 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022122 D(p->level--);
22123 return _seq;
22124}
22125
Pablo Galindo87c87b52020-11-18 23:44:30 +000022126// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022127static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022128_gather_106_rule(Parser *p)
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022129{
22130 D(p->level++);
22131 if (p->error_indicator) {
22132 D(p->level--);
22133 return NULL;
22134 }
22135 asdl_seq * _res = NULL;
22136 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022137 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022138 if (p->error_indicator) {
22139 D(p->level--);
22140 return NULL;
22141 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022142 D(fprintf(stderr, "%*c> _gather_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022143 void *elem;
22144 asdl_seq * seq;
22145 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000022146 (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022147 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000022148 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022149 )
22150 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022151 D(fprintf(stderr, "%*c+ _gather_106[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022152 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22153 goto done;
22154 }
22155 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022156 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022158 }
22159 _res = NULL;
22160 done:
22161 D(p->level--);
22162 return _res;
22163}
22164
Pablo Galindo87c87b52020-11-18 23:44:30 +000022165// _tmp_108: ',' kwargs
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022166static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022167_tmp_108_rule(Parser *p)
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022168{
22169 D(p->level++);
22170 if (p->error_indicator) {
22171 D(p->level--);
22172 return NULL;
22173 }
22174 void * _res = NULL;
22175 int _mark = p->mark;
22176 { // ',' kwargs
22177 if (p->error_indicator) {
22178 D(p->level--);
22179 return NULL;
22180 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022181 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022182 Token * _literal;
22183 asdl_seq* k;
22184 if (
22185 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22186 &&
22187 (k = kwargs_rule(p)) // kwargs
22188 )
22189 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022190 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022191 _res = k;
22192 if (_res == NULL && PyErr_Occurred()) {
22193 p->error_indicator = 1;
22194 D(p->level--);
22195 return NULL;
22196 }
22197 goto done;
22198 }
22199 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022200 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22202 }
22203 _res = NULL;
22204 done:
22205 D(p->level--);
22206 return _res;
22207}
22208
Pablo Galindo87c87b52020-11-18 23:44:30 +000022209// _loop0_110: ',' kwarg_or_starred
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022210static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022211_loop0_110_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022212{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022213 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022215 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022216 return NULL;
22217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022218 void *_res = NULL;
22219 int _mark = p->mark;
22220 int _start_mark = p->mark;
22221 void **_children = PyMem_Malloc(sizeof(void *));
22222 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022223 p->error_indicator = 1;
22224 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022225 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022226 return NULL;
22227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022228 ssize_t _children_capacity = 1;
22229 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022230 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022232 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022233 return NULL;
22234 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022235 D(fprintf(stderr, "%*c> _loop0_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022236 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022237 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022238 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022239 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022240 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022241 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022242 )
22243 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022244 _res = elem;
22245 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022246 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022247 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022248 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022249 return NULL;
22250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022251 if (_n == _children_capacity) {
22252 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022253 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22254 if (!_new_children) {
22255 p->error_indicator = 1;
22256 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022257 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022258 return NULL;
22259 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022260 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022262 _children[_n++] = _res;
22263 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022265 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022266 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22268 }
22269 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22270 if (!_seq) {
22271 PyMem_Free(_children);
22272 p->error_indicator = 1;
22273 PyErr_NoMemory();
22274 D(p->level--);
22275 return NULL;
22276 }
22277 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22278 PyMem_Free(_children);
22279 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22280 D(p->level--);
22281 return _seq;
22282}
22283
22284// _gather_109: kwarg_or_starred _loop0_110
22285static asdl_seq *
22286_gather_109_rule(Parser *p)
22287{
22288 D(p->level++);
22289 if (p->error_indicator) {
22290 D(p->level--);
22291 return NULL;
22292 }
22293 asdl_seq * _res = NULL;
22294 int _mark = p->mark;
22295 { // kwarg_or_starred _loop0_110
22296 if (p->error_indicator) {
22297 D(p->level--);
22298 return NULL;
22299 }
22300 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22301 KeywordOrStarred* elem;
22302 asdl_seq * seq;
22303 if (
22304 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22305 &&
22306 (seq = _loop0_110_rule(p)) // _loop0_110
22307 )
22308 {
22309 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22310 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22311 goto done;
22312 }
22313 p->mark = _mark;
22314 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22316 }
22317 _res = NULL;
22318 done:
22319 D(p->level--);
22320 return _res;
22321}
22322
22323// _loop0_112: ',' kwarg_or_double_starred
22324static asdl_seq *
22325_loop0_112_rule(Parser *p)
22326{
22327 D(p->level++);
22328 if (p->error_indicator) {
22329 D(p->level--);
22330 return NULL;
22331 }
22332 void *_res = NULL;
22333 int _mark = p->mark;
22334 int _start_mark = p->mark;
22335 void **_children = PyMem_Malloc(sizeof(void *));
22336 if (!_children) {
22337 p->error_indicator = 1;
22338 PyErr_NoMemory();
22339 D(p->level--);
22340 return NULL;
22341 }
22342 ssize_t _children_capacity = 1;
22343 ssize_t _n = 0;
22344 { // ',' kwarg_or_double_starred
22345 if (p->error_indicator) {
22346 D(p->level--);
22347 return NULL;
22348 }
22349 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22350 Token * _literal;
22351 KeywordOrStarred* elem;
22352 while (
22353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22354 &&
22355 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22356 )
22357 {
22358 _res = elem;
22359 if (_res == NULL && PyErr_Occurred()) {
22360 p->error_indicator = 1;
22361 PyMem_Free(_children);
22362 D(p->level--);
22363 return NULL;
22364 }
22365 if (_n == _children_capacity) {
22366 _children_capacity *= 2;
22367 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22368 if (!_new_children) {
22369 p->error_indicator = 1;
22370 PyErr_NoMemory();
22371 D(p->level--);
22372 return NULL;
22373 }
22374 _children = _new_children;
22375 }
22376 _children[_n++] = _res;
22377 _mark = p->mark;
22378 }
22379 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022380 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000022381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022383 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22384 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022385 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022386 p->error_indicator = 1;
22387 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022388 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022389 return NULL;
22390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022391 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22392 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022393 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022394 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022395 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022396}
22397
Pablo Galindo87c87b52020-11-18 23:44:30 +000022398// _gather_111: kwarg_or_double_starred _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022399static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022400_gather_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022401{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022402 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022403 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022407 asdl_seq * _res = NULL;
22408 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022409 { // kwarg_or_double_starred _loop0_112
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022411 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022412 return NULL;
22413 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022414 D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022415 KeywordOrStarred* elem;
22416 asdl_seq * seq;
22417 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000022418 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022419 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022420 (seq = _loop0_112_rule(p)) // _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022421 )
22422 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022423 D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022424 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022425 goto done;
22426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022427 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022428 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000022429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022431 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022432 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022433 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022434 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022435}
22436
Pablo Galindo87c87b52020-11-18 23:44:30 +000022437// _loop0_114: ',' kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022438static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022439_loop0_114_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022441 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022443 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022444 return NULL;
22445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022446 void *_res = NULL;
22447 int _mark = p->mark;
22448 int _start_mark = p->mark;
22449 void **_children = PyMem_Malloc(sizeof(void *));
22450 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022451 p->error_indicator = 1;
22452 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022453 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022454 return NULL;
22455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022456 ssize_t _children_capacity = 1;
22457 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022458 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022461 return NULL;
22462 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022463 D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022464 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022465 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022466 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022467 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022468 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000022469 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022470 )
22471 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022472 _res = elem;
22473 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022474 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022475 PyMem_Free(_children);
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 if (_n == _children_capacity) {
22480 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022481 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22482 if (!_new_children) {
22483 p->error_indicator = 1;
22484 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022485 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022486 return NULL;
22487 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022488 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022490 _children[_n++] = _res;
22491 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022493 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022494 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000022495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022497 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22498 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022499 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022500 p->error_indicator = 1;
22501 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022502 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022503 return NULL;
22504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022505 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22506 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022507 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022508 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022509 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022510}
22511
Pablo Galindo87c87b52020-11-18 23:44:30 +000022512// _gather_113: kwarg_or_starred _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022513static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022514_gather_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022515{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022516 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022517 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022521 asdl_seq * _res = NULL;
22522 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022523 { // kwarg_or_starred _loop0_114
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022525 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022526 return NULL;
22527 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022528 D(fprintf(stderr, "%*c> _gather_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022529 KeywordOrStarred* elem;
22530 asdl_seq * seq;
22531 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000022532 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022533 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022534 (seq = _loop0_114_rule(p)) // _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022535 )
22536 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022537 D(fprintf(stderr, "%*c+ _gather_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022538 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022539 goto done;
22540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022541 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022542 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000022543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022545 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022546 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022547 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022548 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022549}
22550
Pablo Galindo87c87b52020-11-18 23:44:30 +000022551// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022552static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022553_loop0_116_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022554{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022555 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022556 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022557 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022558 return NULL;
22559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022560 void *_res = NULL;
22561 int _mark = p->mark;
22562 int _start_mark = p->mark;
22563 void **_children = PyMem_Malloc(sizeof(void *));
22564 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022565 p->error_indicator = 1;
22566 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022568 return NULL;
22569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022570 ssize_t _children_capacity = 1;
22571 ssize_t _n = 0;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022572 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022575 return NULL;
22576 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022577 D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022578 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022579 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022580 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022581 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022582 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000022583 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022584 )
22585 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022586 _res = elem;
22587 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022588 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022589 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022590 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022591 return NULL;
22592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022593 if (_n == _children_capacity) {
22594 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022595 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22596 if (!_new_children) {
22597 p->error_indicator = 1;
22598 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022599 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022600 return NULL;
22601 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022602 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022604 _children[_n++] = _res;
22605 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022607 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022608 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000022609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022611 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22612 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022613 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022614 p->error_indicator = 1;
22615 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022616 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022617 return NULL;
22618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022619 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22620 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022621 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022622 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022623 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022624}
22625
Pablo Galindo87c87b52020-11-18 23:44:30 +000022626// _gather_115: kwarg_or_double_starred _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022627static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022628_gather_115_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022629{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022630 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022631 if (p->error_indicator) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022635 asdl_seq * _res = NULL;
22636 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022637 { // kwarg_or_double_starred _loop0_116
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022639 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022640 return NULL;
22641 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022642 D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022643 KeywordOrStarred* elem;
22644 asdl_seq * seq;
22645 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000022646 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022647 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022648 (seq = _loop0_116_rule(p)) // _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022649 )
22650 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022651 D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022652 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022653 goto done;
22654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022655 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022656 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000022657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022659 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022660 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022661 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022662 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022663}
22664
Pablo Galindo87c87b52020-11-18 23:44:30 +000022665// _loop0_117: (',' star_target)
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022666static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022667_loop0_117_rule(Parser *p)
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022668{
22669 D(p->level++);
22670 if (p->error_indicator) {
22671 D(p->level--);
22672 return NULL;
22673 }
22674 void *_res = NULL;
22675 int _mark = p->mark;
22676 int _start_mark = p->mark;
22677 void **_children = PyMem_Malloc(sizeof(void *));
22678 if (!_children) {
22679 p->error_indicator = 1;
22680 PyErr_NoMemory();
22681 D(p->level--);
22682 return NULL;
22683 }
22684 ssize_t _children_capacity = 1;
22685 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022686 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022688 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022689 return NULL;
22690 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022691 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22692 void *_tmp_148_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022693 while (
Pablo Galindo87c87b52020-11-18 23:44:30 +000022694 (_tmp_148_var = _tmp_148_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022695 )
22696 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022697 _res = _tmp_148_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022698 if (_n == _children_capacity) {
22699 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022700 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22701 if (!_new_children) {
22702 p->error_indicator = 1;
22703 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022704 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022705 return NULL;
22706 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022707 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022709 _children[_n++] = _res;
22710 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022712 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022713 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022716 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22717 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022718 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022719 p->error_indicator = 1;
22720 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022721 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022722 return NULL;
22723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022724 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22725 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000022726 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022727 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022728 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022729}
22730
Pablo Galindo87c87b52020-11-18 23:44:30 +000022731// _loop0_119: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022732static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022733_loop0_119_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022734{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022735 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022737 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022738 return NULL;
22739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022740 void *_res = NULL;
22741 int _mark = p->mark;
22742 int _start_mark = p->mark;
22743 void **_children = PyMem_Malloc(sizeof(void *));
22744 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022745 p->error_indicator = 1;
22746 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022747 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022748 return NULL;
22749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022750 ssize_t _children_capacity = 1;
22751 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022752 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022754 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022755 return NULL;
22756 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022757 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022758 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022759 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022760 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022761 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022762 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022763 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022764 )
22765 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022766 _res = elem;
22767 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022768 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022769 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022770 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022771 return NULL;
22772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022773 if (_n == _children_capacity) {
22774 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022775 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22776 if (!_new_children) {
22777 p->error_indicator = 1;
22778 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022780 return NULL;
22781 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022782 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022784 _children[_n++] = _res;
22785 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022787 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022788 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022791 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22792 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022793 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022794 p->error_indicator = 1;
22795 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022796 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022797 return NULL;
22798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022799 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22800 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000022801 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022802 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022803 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022804}
22805
Pablo Galindo87c87b52020-11-18 23:44:30 +000022806// _gather_118: star_target _loop0_119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022807static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022808_gather_118_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022809{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022810 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022813 return NULL;
22814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022815 asdl_seq * _res = NULL;
22816 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022817 { // star_target _loop0_119
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022818 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022819 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022820 return NULL;
22821 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022822 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022823 expr_ty elem;
22824 asdl_seq * seq;
22825 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022826 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022827 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000022828 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022829 )
22830 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022831 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022832 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022833 goto done;
22834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022835 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022836 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
22837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022839 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022840 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022841 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022842 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022843}
22844
Pablo Galindo87c87b52020-11-18 23:44:30 +000022845// _tmp_120: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022846static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022847_tmp_120_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022848{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022849 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022851 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022852 return NULL;
22853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022854 void * _res = NULL;
22855 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022856 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022858 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022859 return NULL;
22860 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022861 D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022862 expr_ty star_target_var;
22863 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022864 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022865 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022866 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022867 )
22868 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000022869 D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022870 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022871 goto done;
22872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022873 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022874 D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022877 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022878 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022880 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022881}
22882
Pablo Galindo87c87b52020-11-18 23:44:30 +000022883// _loop0_122: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022884static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000022885_loop0_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022886{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022887 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022889 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022890 return NULL;
22891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022892 void *_res = NULL;
22893 int _mark = p->mark;
22894 int _start_mark = p->mark;
22895 void **_children = PyMem_Malloc(sizeof(void *));
22896 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022897 p->error_indicator = 1;
22898 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022900 return NULL;
22901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022902 ssize_t _children_capacity = 1;
22903 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022904 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022907 return NULL;
22908 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000022909 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022910 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022911 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022912 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022913 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022914 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022915 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022916 )
22917 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022918 _res = elem;
22919 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022920 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022921 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022922 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022923 return NULL;
22924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022925 if (_n == _children_capacity) {
22926 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022927 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22928 if (!_new_children) {
22929 p->error_indicator = 1;
22930 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022932 return NULL;
22933 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022934 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022936 _children[_n++] = _res;
22937 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022939 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000022940 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
22941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
22942 }
22943 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22944 if (!_seq) {
22945 PyMem_Free(_children);
22946 p->error_indicator = 1;
22947 PyErr_NoMemory();
22948 D(p->level--);
22949 return NULL;
22950 }
22951 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22952 PyMem_Free(_children);
22953 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
22954 D(p->level--);
22955 return _seq;
22956}
22957
22958// _gather_121: del_target _loop0_122
22959static asdl_seq *
22960_gather_121_rule(Parser *p)
22961{
22962 D(p->level++);
22963 if (p->error_indicator) {
22964 D(p->level--);
22965 return NULL;
22966 }
22967 asdl_seq * _res = NULL;
22968 int _mark = p->mark;
22969 { // del_target _loop0_122
22970 if (p->error_indicator) {
22971 D(p->level--);
22972 return NULL;
22973 }
22974 D(fprintf(stderr, "%*c> _gather_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_122"));
22975 expr_ty elem;
22976 asdl_seq * seq;
22977 if (
22978 (elem = del_target_rule(p)) // del_target
22979 &&
22980 (seq = _loop0_122_rule(p)) // _loop0_122
22981 )
22982 {
22983 D(fprintf(stderr, "%*c+ _gather_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_122"));
22984 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22985 goto done;
22986 }
22987 p->mark = _mark;
22988 D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ',
22989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_122"));
22990 }
22991 _res = NULL;
22992 done:
22993 D(p->level--);
22994 return _res;
22995}
22996
22997// _loop0_124: ',' target
22998static asdl_seq *
22999_loop0_124_rule(Parser *p)
23000{
23001 D(p->level++);
23002 if (p->error_indicator) {
23003 D(p->level--);
23004 return NULL;
23005 }
23006 void *_res = NULL;
23007 int _mark = p->mark;
23008 int _start_mark = p->mark;
23009 void **_children = PyMem_Malloc(sizeof(void *));
23010 if (!_children) {
23011 p->error_indicator = 1;
23012 PyErr_NoMemory();
23013 D(p->level--);
23014 return NULL;
23015 }
23016 ssize_t _children_capacity = 1;
23017 ssize_t _n = 0;
23018 { // ',' target
23019 if (p->error_indicator) {
23020 D(p->level--);
23021 return NULL;
23022 }
23023 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
23024 Token * _literal;
23025 expr_ty elem;
23026 while (
23027 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23028 &&
23029 (elem = target_rule(p)) // target
23030 )
23031 {
23032 _res = elem;
23033 if (_res == NULL && PyErr_Occurred()) {
23034 p->error_indicator = 1;
23035 PyMem_Free(_children);
23036 D(p->level--);
23037 return NULL;
23038 }
23039 if (_n == _children_capacity) {
23040 _children_capacity *= 2;
23041 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23042 if (!_new_children) {
23043 p->error_indicator = 1;
23044 PyErr_NoMemory();
23045 D(p->level--);
23046 return NULL;
23047 }
23048 _children = _new_children;
23049 }
23050 _children[_n++] = _res;
23051 _mark = p->mark;
23052 }
23053 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023054 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000023055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023057 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23058 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023059 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023060 p->error_indicator = 1;
23061 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023062 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023063 return NULL;
23064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023065 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23066 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023067 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023068 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023069 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023070}
23071
Pablo Galindo87c87b52020-11-18 23:44:30 +000023072// _gather_123: target _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023073static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023074_gather_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023075{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023076 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023077 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023079 return NULL;
23080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023081 asdl_seq * _res = NULL;
23082 int _mark = p->mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023083 { // target _loop0_124
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023086 return NULL;
23087 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023088 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023089 expr_ty elem;
23090 asdl_seq * seq;
23091 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000023092 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023093 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023094 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023095 )
23096 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023097 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023098 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023099 goto done;
23100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023101 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023102 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo87c87b52020-11-18 23:44:30 +000023103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023105 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023106 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023107 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023108 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023109}
23110
Pablo Galindo87c87b52020-11-18 23:44:30 +000023111// _tmp_125: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023112static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023113_tmp_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023114{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023115 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023118 return NULL;
23119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023120 void * _res = NULL;
23121 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023122 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023125 return NULL;
23126 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023127 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023128 expr_ty args_var;
23129 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023130 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023131 )
23132 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023133 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023134 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023135 goto done;
23136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023137 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023138 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023140 }
23141 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023142 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023143 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023144 return NULL;
23145 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023146 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023147 expr_ty expression_var;
23148 asdl_seq* for_if_clauses_var;
23149 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023150 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023152 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023153 )
23154 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023155 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023156 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023157 goto done;
23158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023159 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023160 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023163 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023164 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023165 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023166 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023167}
23168
Pablo Galindo87c87b52020-11-18 23:44:30 +000023169// _loop0_126: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023170static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023171_loop0_126_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023172{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023173 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023175 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023176 return NULL;
23177 }
23178 void *_res = NULL;
23179 int _mark = p->mark;
23180 int _start_mark = p->mark;
23181 void **_children = PyMem_Malloc(sizeof(void *));
23182 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023183 p->error_indicator = 1;
23184 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023185 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023186 return NULL;
23187 }
23188 ssize_t _children_capacity = 1;
23189 ssize_t _n = 0;
23190 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023193 return NULL;
23194 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023195 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023196 asdl_seq* star_named_expressions_var;
23197 while (
23198 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23199 )
23200 {
23201 _res = star_named_expressions_var;
23202 if (_n == _children_capacity) {
23203 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023204 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23205 if (!_new_children) {
23206 p->error_indicator = 1;
23207 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023208 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023209 return NULL;
23210 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023211 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023212 }
23213 _children[_n++] = _res;
23214 _mark = p->mark;
23215 }
23216 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023217 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023219 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023220 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23221 if (!_seq) {
23222 PyMem_Free(_children);
23223 p->error_indicator = 1;
23224 PyErr_NoMemory();
23225 D(p->level--);
23226 return NULL;
23227 }
23228 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23229 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000023230 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
23231 D(p->level--);
23232 return _seq;
23233}
23234
23235// _loop0_127: (star_targets '=')
23236static asdl_seq *
23237_loop0_127_rule(Parser *p)
23238{
23239 D(p->level++);
23240 if (p->error_indicator) {
23241 D(p->level--);
23242 return NULL;
23243 }
23244 void *_res = NULL;
23245 int _mark = p->mark;
23246 int _start_mark = p->mark;
23247 void **_children = PyMem_Malloc(sizeof(void *));
23248 if (!_children) {
23249 p->error_indicator = 1;
23250 PyErr_NoMemory();
23251 D(p->level--);
23252 return NULL;
23253 }
23254 ssize_t _children_capacity = 1;
23255 ssize_t _n = 0;
23256 { // (star_targets '=')
23257 if (p->error_indicator) {
23258 D(p->level--);
23259 return NULL;
23260 }
23261 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23262 void *_tmp_149_var;
23263 while (
23264 (_tmp_149_var = _tmp_149_rule(p)) // star_targets '='
23265 )
23266 {
23267 _res = _tmp_149_var;
23268 if (_n == _children_capacity) {
23269 _children_capacity *= 2;
23270 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23271 if (!_new_children) {
23272 p->error_indicator = 1;
23273 PyErr_NoMemory();
23274 D(p->level--);
23275 return NULL;
23276 }
23277 _children = _new_children;
23278 }
23279 _children[_n++] = _res;
23280 _mark = p->mark;
23281 }
23282 p->mark = _mark;
23283 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
23284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23285 }
23286 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23287 if (!_seq) {
23288 PyMem_Free(_children);
23289 p->error_indicator = 1;
23290 PyErr_NoMemory();
23291 D(p->level--);
23292 return NULL;
23293 }
23294 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23295 PyMem_Free(_children);
23296 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23297 D(p->level--);
23298 return _seq;
23299}
23300
23301// _loop0_128: (star_targets '=')
23302static asdl_seq *
23303_loop0_128_rule(Parser *p)
23304{
23305 D(p->level++);
23306 if (p->error_indicator) {
23307 D(p->level--);
23308 return NULL;
23309 }
23310 void *_res = NULL;
23311 int _mark = p->mark;
23312 int _start_mark = p->mark;
23313 void **_children = PyMem_Malloc(sizeof(void *));
23314 if (!_children) {
23315 p->error_indicator = 1;
23316 PyErr_NoMemory();
23317 D(p->level--);
23318 return NULL;
23319 }
23320 ssize_t _children_capacity = 1;
23321 ssize_t _n = 0;
23322 { // (star_targets '=')
23323 if (p->error_indicator) {
23324 D(p->level--);
23325 return NULL;
23326 }
23327 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23328 void *_tmp_150_var;
23329 while (
23330 (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
23331 )
23332 {
23333 _res = _tmp_150_var;
23334 if (_n == _children_capacity) {
23335 _children_capacity *= 2;
23336 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23337 if (!_new_children) {
23338 p->error_indicator = 1;
23339 PyErr_NoMemory();
23340 D(p->level--);
23341 return NULL;
23342 }
23343 _children = _new_children;
23344 }
23345 _children[_n++] = _res;
23346 _mark = p->mark;
23347 }
23348 p->mark = _mark;
23349 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23351 }
23352 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23353 if (!_seq) {
23354 PyMem_Free(_children);
23355 p->error_indicator = 1;
23356 PyErr_NoMemory();
23357 D(p->level--);
23358 return NULL;
23359 }
23360 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23361 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023362 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023363 D(p->level--);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023364 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023365}
23366
Pablo Galindo87c87b52020-11-18 23:44:30 +000023367// _tmp_129: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023368static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023369_tmp_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023370{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023371 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023373 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023374 return NULL;
23375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023376 void * _res = NULL;
23377 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023378 { // yield_expr
23379 if (p->error_indicator) {
23380 D(p->level--);
23381 return NULL;
23382 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023383 D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023384 expr_ty yield_expr_var;
23385 if (
23386 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23387 )
23388 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023389 D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023390 _res = yield_expr_var;
23391 goto done;
23392 }
23393 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023394 D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23396 }
23397 { // star_expressions
23398 if (p->error_indicator) {
23399 D(p->level--);
23400 return NULL;
23401 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023402 D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023403 expr_ty star_expressions_var;
23404 if (
23405 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23406 )
23407 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023408 D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023409 _res = star_expressions_var;
23410 goto done;
23411 }
23412 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023413 D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23415 }
23416 _res = NULL;
23417 done:
23418 D(p->level--);
23419 return _res;
23420}
23421
Pablo Galindo87c87b52020-11-18 23:44:30 +000023422// _tmp_130: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023423static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023424_tmp_130_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023425{
23426 D(p->level++);
23427 if (p->error_indicator) {
23428 D(p->level--);
23429 return NULL;
23430 }
23431 void * _res = NULL;
23432 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023433 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023436 return NULL;
23437 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023438 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023439 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023440 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023441 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023442 )
23443 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023444 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023445 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023446 goto done;
23447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023448 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023449 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023451 }
23452 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023453 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023454 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023455 return NULL;
23456 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023457 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023458 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023459 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023460 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023461 )
23462 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023463 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023464 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023465 goto done;
23466 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023467 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023468 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023470 }
23471 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023473 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023474 return NULL;
23475 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023476 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023477 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023478 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023479 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023480 )
23481 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023482 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023483 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023484 goto done;
23485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023486 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023487 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023490 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023491 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023492 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023493 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023494}
23495
Pablo Galindo87c87b52020-11-18 23:44:30 +000023496// _loop0_131: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023497static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023498_loop0_131_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023499{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023500 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023501 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023503 return NULL;
23504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023505 void *_res = NULL;
23506 int _mark = p->mark;
23507 int _start_mark = p->mark;
23508 void **_children = PyMem_Malloc(sizeof(void *));
23509 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023510 p->error_indicator = 1;
23511 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023512 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023513 return NULL;
23514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023515 ssize_t _children_capacity = 1;
23516 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023517 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023518 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023519 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023520 return NULL;
23521 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023522 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023523 arg_ty param_no_default_var;
23524 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023525 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023526 )
23527 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023528 _res = param_no_default_var;
23529 if (_n == _children_capacity) {
23530 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23532 if (!_new_children) {
23533 p->error_indicator = 1;
23534 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023535 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023536 return NULL;
23537 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023538 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023540 _children[_n++] = _res;
23541 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023543 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023544 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023547 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23548 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023549 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023550 p->error_indicator = 1;
23551 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023552 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023553 return NULL;
23554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023555 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23556 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000023557 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023558 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023559 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023560}
23561
Pablo Galindo87c87b52020-11-18 23:44:30 +000023562// _tmp_132: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023563static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023564_tmp_132_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023565{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023566 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023567 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023569 return NULL;
23570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023571 void * _res = NULL;
23572 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023573 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023574 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023575 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023576 return NULL;
23577 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023578 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023579 SlashWithDefault* slash_with_default_var;
23580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023581 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023582 )
23583 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023584 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023585 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023586 goto done;
23587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023588 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023589 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023591 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023592 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023595 return NULL;
23596 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023597 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23598 asdl_seq * _loop1_151_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023599 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000023600 (_loop1_151_var = _loop1_151_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023601 )
23602 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023603 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23604 _res = _loop1_151_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023605 goto done;
23606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023607 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023608 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023611 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023612 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023613 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023614 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023615}
23616
Pablo Galindo87c87b52020-11-18 23:44:30 +000023617// _loop0_133: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023618static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023619_loop0_133_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023620{
23621 D(p->level++);
23622 if (p->error_indicator) {
23623 D(p->level--);
23624 return NULL;
23625 }
23626 void *_res = NULL;
23627 int _mark = p->mark;
23628 int _start_mark = p->mark;
23629 void **_children = PyMem_Malloc(sizeof(void *));
23630 if (!_children) {
23631 p->error_indicator = 1;
23632 PyErr_NoMemory();
23633 D(p->level--);
23634 return NULL;
23635 }
23636 ssize_t _children_capacity = 1;
23637 ssize_t _n = 0;
23638 { // lambda_param_no_default
23639 if (p->error_indicator) {
23640 D(p->level--);
23641 return NULL;
23642 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023643 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023644 arg_ty lambda_param_no_default_var;
23645 while (
23646 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23647 )
23648 {
23649 _res = lambda_param_no_default_var;
23650 if (_n == _children_capacity) {
23651 _children_capacity *= 2;
23652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23653 if (!_new_children) {
23654 p->error_indicator = 1;
23655 PyErr_NoMemory();
23656 D(p->level--);
23657 return NULL;
23658 }
23659 _children = _new_children;
23660 }
23661 _children[_n++] = _res;
23662 _mark = p->mark;
23663 }
23664 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023665 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23667 }
23668 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23669 if (!_seq) {
23670 PyMem_Free(_children);
23671 p->error_indicator = 1;
23672 PyErr_NoMemory();
23673 D(p->level--);
23674 return NULL;
23675 }
23676 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23677 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000023678 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023679 D(p->level--);
23680 return _seq;
23681}
23682
Pablo Galindo87c87b52020-11-18 23:44:30 +000023683// _tmp_134: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023684static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023685_tmp_134_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023686{
23687 D(p->level++);
23688 if (p->error_indicator) {
23689 D(p->level--);
23690 return NULL;
23691 }
23692 void * _res = NULL;
23693 int _mark = p->mark;
23694 { // lambda_slash_with_default
23695 if (p->error_indicator) {
23696 D(p->level--);
23697 return NULL;
23698 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023699 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023700 SlashWithDefault* lambda_slash_with_default_var;
23701 if (
23702 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23703 )
23704 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023705 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023706 _res = lambda_slash_with_default_var;
23707 goto done;
23708 }
23709 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023710 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23712 }
23713 { // lambda_param_with_default+
23714 if (p->error_indicator) {
23715 D(p->level--);
23716 return NULL;
23717 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023718 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23719 asdl_seq * _loop1_152_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023720 if (
Pablo Galindo87c87b52020-11-18 23:44:30 +000023721 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023722 )
23723 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023724 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23725 _res = _loop1_152_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023726 goto done;
23727 }
23728 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023729 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23731 }
23732 _res = NULL;
23733 done:
23734 D(p->level--);
23735 return _res;
23736}
23737
Pablo Galindo87c87b52020-11-18 23:44:30 +000023738// _tmp_135: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023739static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023740_tmp_135_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023741{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023742 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023745 return NULL;
23746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023747 void * _res = NULL;
23748 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023749 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023751 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023752 return NULL;
23753 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023754 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023755 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023756 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023757 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023758 )
23759 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023760 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023761 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023762 goto done;
23763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023764 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023765 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023767 }
23768 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023771 return NULL;
23772 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023773 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023774 Token * _literal;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023775 void *_tmp_153_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023776 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023777 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023778 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000023779 (_tmp_153_var = _tmp_153_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023780 )
23781 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023782 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23783 _res = _PyPegen_dummy_name(p, _literal, _tmp_153_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023784 goto done;
23785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023786 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023787 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023790 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023791 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023792 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023793 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023794}
23795
Pablo Galindo87c87b52020-11-18 23:44:30 +000023796// _tmp_136: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023797static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023798_tmp_136_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023799{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023800 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023802 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023803 return NULL;
23804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023805 void * _res = NULL;
23806 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023807 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023809 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023810 return NULL;
23811 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023812 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023813 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023814 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023815 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023816 )
23817 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023818 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023819 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023820 goto done;
23821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023822 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023823 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023825 }
23826 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023828 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023829 return NULL;
23830 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023831 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023832 Token * _literal;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023833 void *_tmp_154_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023834 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023835 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023836 &&
Pablo Galindo87c87b52020-11-18 23:44:30 +000023837 (_tmp_154_var = _tmp_154_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023838 )
23839 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023840 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23841 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023842 goto done;
23843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023844 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023845 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023848 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023849 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023850 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023851 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023852}
23853
Pablo Galindo87c87b52020-11-18 23:44:30 +000023854// _tmp_137: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023855static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000023856_tmp_137_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023857{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023858 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023859 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023860 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023861 return NULL;
23862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023863 void * _res = NULL;
23864 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023865 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023866 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023867 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023868 return NULL;
23869 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000023870 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023871 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023872 expr_ty z;
23873 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023874 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023875 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023876 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023877 )
23878 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000023879 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023880 _res = z;
23881 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023882 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023883 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023884 return NULL;
23885 }
23886 goto done;
23887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023888 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000023889 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023892 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023893 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023894 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023895 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023896}
23897
Pablo Galindo87c87b52020-11-18 23:44:30 +000023898// _tmp_138: '.' | '...'
23899static void *
23900_tmp_138_rule(Parser *p)
23901{
23902 D(p->level++);
23903 if (p->error_indicator) {
23904 D(p->level--);
23905 return NULL;
23906 }
23907 void * _res = NULL;
23908 int _mark = p->mark;
23909 { // '.'
23910 if (p->error_indicator) {
23911 D(p->level--);
23912 return NULL;
23913 }
23914 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23915 Token * _literal;
23916 if (
23917 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23918 )
23919 {
23920 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23921 _res = _literal;
23922 goto done;
23923 }
23924 p->mark = _mark;
23925 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23927 }
23928 { // '...'
23929 if (p->error_indicator) {
23930 D(p->level--);
23931 return NULL;
23932 }
23933 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23934 Token * _literal;
23935 if (
23936 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23937 )
23938 {
23939 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23940 _res = _literal;
23941 goto done;
23942 }
23943 p->mark = _mark;
23944 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23946 }
23947 _res = NULL;
23948 done:
23949 D(p->level--);
23950 return _res;
23951}
23952
23953// _tmp_139: '.' | '...'
23954static void *
23955_tmp_139_rule(Parser *p)
23956{
23957 D(p->level++);
23958 if (p->error_indicator) {
23959 D(p->level--);
23960 return NULL;
23961 }
23962 void * _res = NULL;
23963 int _mark = p->mark;
23964 { // '.'
23965 if (p->error_indicator) {
23966 D(p->level--);
23967 return NULL;
23968 }
23969 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23970 Token * _literal;
23971 if (
23972 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23973 )
23974 {
23975 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23976 _res = _literal;
23977 goto done;
23978 }
23979 p->mark = _mark;
23980 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23982 }
23983 { // '...'
23984 if (p->error_indicator) {
23985 D(p->level--);
23986 return NULL;
23987 }
23988 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23989 Token * _literal;
23990 if (
23991 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23992 )
23993 {
23994 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23995 _res = _literal;
23996 goto done;
23997 }
23998 p->mark = _mark;
23999 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24001 }
24002 _res = NULL;
24003 done:
24004 D(p->level--);
24005 return _res;
24006}
24007
24008// _tmp_140: '@' named_expression NEWLINE
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024009static void *
24010_tmp_140_rule(Parser *p)
24011{
24012 D(p->level++);
24013 if (p->error_indicator) {
24014 D(p->level--);
24015 return NULL;
24016 }
24017 void * _res = NULL;
24018 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024019 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024020 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024021 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024022 return NULL;
24023 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024024 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024025 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024026 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024027 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024028 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024029 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024030 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024031 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024032 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024033 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024034 )
24035 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024036 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024037 _res = f;
24038 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024039 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024040 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024041 return NULL;
24042 }
24043 goto done;
24044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024045 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024046 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024049 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024050 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024051 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024052 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024053}
24054
Pablo Galindo87c87b52020-11-18 23:44:30 +000024055// _tmp_141: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024056static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024057_tmp_141_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024058{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024059 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024062 return NULL;
24063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024064 void * _res = NULL;
24065 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024066 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024069 return NULL;
24070 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024071 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024072 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024073 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024074 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024075 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024076 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024077 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024078 )
24079 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024080 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024081 _res = c;
24082 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024083 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024085 return NULL;
24086 }
24087 goto done;
24088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024089 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024090 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024093 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024094 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024095 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024096 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024097}
24098
Pablo Galindo87c87b52020-11-18 23:44:30 +000024099// _tmp_142: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024100static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024101_tmp_142_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024102{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024103 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024104 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024105 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024106 return NULL;
24107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024108 void * _res = NULL;
24109 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024110 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024112 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024113 return NULL;
24114 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024115 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024116 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024117 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024118 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024119 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024120 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024121 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024122 )
24123 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024124 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024125 _res = c;
24126 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024127 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024129 return NULL;
24130 }
24131 goto done;
24132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024133 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024134 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024137 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024138 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024139 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024140 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024141}
24142
Pablo Galindo87c87b52020-11-18 23:44:30 +000024143// _tmp_143: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024144static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024145_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024146{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024147 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024148 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024150 return NULL;
24151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024152 void * _res = NULL;
24153 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024154 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024157 return NULL;
24158 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024159 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024160 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024161 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024162 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024163 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024164 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024165 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024166 )
24167 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024168 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024169 _res = c;
24170 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024171 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024172 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024173 return NULL;
24174 }
24175 goto done;
24176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024177 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024178 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024181 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024182 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024183 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024184 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024185}
24186
Pablo Galindo87c87b52020-11-18 23:44:30 +000024187// _tmp_144: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024188static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024189_tmp_144_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024190{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024191 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024192 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024194 return NULL;
24195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024196 void * _res = NULL;
24197 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024198 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024199 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024200 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024201 return NULL;
24202 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024203 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024204 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024205 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024206 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024207 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024208 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024209 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024210 )
24211 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024212 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024213 _res = c;
24214 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024215 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024217 return NULL;
24218 }
24219 goto done;
24220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024221 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024222 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024224 }
24225 _res = NULL;
24226 done:
24227 D(p->level--);
24228 return _res;
24229}
24230
Pablo Galindo87c87b52020-11-18 23:44:30 +000024231// _tmp_145: 'if' disjunction
24232static void *
24233_tmp_145_rule(Parser *p)
24234{
24235 D(p->level++);
24236 if (p->error_indicator) {
24237 D(p->level--);
24238 return NULL;
24239 }
24240 void * _res = NULL;
24241 int _mark = p->mark;
24242 { // 'if' disjunction
24243 if (p->error_indicator) {
24244 D(p->level--);
24245 return NULL;
24246 }
24247 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24248 Token * _keyword;
24249 expr_ty z;
24250 if (
24251 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24252 &&
24253 (z = disjunction_rule(p)) // disjunction
24254 )
24255 {
24256 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24257 _res = z;
24258 if (_res == NULL && PyErr_Occurred()) {
24259 p->error_indicator = 1;
24260 D(p->level--);
24261 return NULL;
24262 }
24263 goto done;
24264 }
24265 p->mark = _mark;
24266 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
24267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24268 }
24269 _res = NULL;
24270 done:
24271 D(p->level--);
24272 return _res;
24273}
24274
24275// _tmp_146: 'if' disjunction
24276static void *
24277_tmp_146_rule(Parser *p)
24278{
24279 D(p->level++);
24280 if (p->error_indicator) {
24281 D(p->level--);
24282 return NULL;
24283 }
24284 void * _res = NULL;
24285 int _mark = p->mark;
24286 { // 'if' disjunction
24287 if (p->error_indicator) {
24288 D(p->level--);
24289 return NULL;
24290 }
24291 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24292 Token * _keyword;
24293 expr_ty z;
24294 if (
24295 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24296 &&
24297 (z = disjunction_rule(p)) // disjunction
24298 )
24299 {
24300 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24301 _res = z;
24302 if (_res == NULL && PyErr_Occurred()) {
24303 p->error_indicator = 1;
24304 D(p->level--);
24305 return NULL;
24306 }
24307 goto done;
24308 }
24309 p->mark = _mark;
24310 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
24311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24312 }
24313 _res = NULL;
24314 done:
24315 D(p->level--);
24316 return _res;
24317}
24318
24319// _tmp_147: starred_expression | named_expression !'='
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024320static void *
24321_tmp_147_rule(Parser *p)
24322{
24323 D(p->level++);
24324 if (p->error_indicator) {
24325 D(p->level--);
24326 return NULL;
24327 }
24328 void * _res = NULL;
24329 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024330 { // starred_expression
24331 if (p->error_indicator) {
24332 D(p->level--);
24333 return NULL;
24334 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024335 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024336 expr_ty starred_expression_var;
24337 if (
24338 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24339 )
24340 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024341 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024342 _res = starred_expression_var;
24343 goto done;
24344 }
24345 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024346 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24348 }
24349 { // named_expression !'='
24350 if (p->error_indicator) {
24351 D(p->level--);
24352 return NULL;
24353 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024354 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024355 expr_ty named_expression_var;
24356 if (
24357 (named_expression_var = named_expression_rule(p)) // named_expression
24358 &&
24359 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24360 )
24361 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024362 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024363 _res = named_expression_var;
24364 goto done;
24365 }
24366 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024367 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24369 }
24370 _res = NULL;
24371 done:
24372 D(p->level--);
24373 return _res;
24374}
24375
Pablo Galindo87c87b52020-11-18 23:44:30 +000024376// _tmp_148: ',' star_target
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024377static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024378_tmp_148_rule(Parser *p)
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024379{
24380 D(p->level++);
24381 if (p->error_indicator) {
24382 D(p->level--);
24383 return NULL;
24384 }
24385 void * _res = NULL;
24386 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024387 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024388 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024389 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024390 return NULL;
24391 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024392 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024393 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024394 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024395 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024396 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024397 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024398 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024399 )
24400 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024401 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024402 _res = c;
24403 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024404 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024405 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024406 return NULL;
24407 }
24408 goto done;
24409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024410 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024411 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024413 }
24414 _res = NULL;
24415 done:
24416 D(p->level--);
24417 return _res;
24418}
24419
Pablo Galindo87c87b52020-11-18 23:44:30 +000024420// _tmp_149: star_targets '='
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024421static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024422_tmp_149_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024423{
24424 D(p->level++);
24425 if (p->error_indicator) {
24426 D(p->level--);
24427 return NULL;
24428 }
24429 void * _res = NULL;
24430 int _mark = p->mark;
24431 { // star_targets '='
24432 if (p->error_indicator) {
24433 D(p->level--);
24434 return NULL;
24435 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024436 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024437 Token * _literal;
24438 expr_ty star_targets_var;
24439 if (
24440 (star_targets_var = star_targets_rule(p)) // star_targets
24441 &&
24442 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24443 )
24444 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024445 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024446 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24447 goto done;
24448 }
24449 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024450 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24452 }
24453 _res = NULL;
24454 done:
24455 D(p->level--);
24456 return _res;
24457}
24458
Pablo Galindo87c87b52020-11-18 23:44:30 +000024459// _tmp_150: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024460static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024461_tmp_150_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024462{
24463 D(p->level++);
24464 if (p->error_indicator) {
24465 D(p->level--);
24466 return NULL;
24467 }
24468 void * _res = NULL;
24469 int _mark = p->mark;
24470 { // star_targets '='
24471 if (p->error_indicator) {
24472 D(p->level--);
24473 return NULL;
24474 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024475 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024476 Token * _literal;
24477 expr_ty star_targets_var;
24478 if (
24479 (star_targets_var = star_targets_rule(p)) // star_targets
24480 &&
24481 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24482 )
24483 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024484 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024485 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24486 goto done;
24487 }
24488 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024489 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24491 }
24492 _res = NULL;
24493 done:
24494 D(p->level--);
24495 return _res;
24496}
24497
Pablo Galindo87c87b52020-11-18 23:44:30 +000024498// _loop1_151: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024499static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024500_loop1_151_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024502 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024504 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024505 return NULL;
24506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024507 void *_res = NULL;
24508 int _mark = p->mark;
24509 int _start_mark = p->mark;
24510 void **_children = PyMem_Malloc(sizeof(void *));
24511 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024512 p->error_indicator = 1;
24513 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024514 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024515 return NULL;
24516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024517 ssize_t _children_capacity = 1;
24518 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024519 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024522 return NULL;
24523 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024524 D(fprintf(stderr, "%*c> _loop1_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024525 NameDefaultPair* param_with_default_var;
24526 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024527 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024528 )
24529 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024530 _res = param_with_default_var;
24531 if (_n == _children_capacity) {
24532 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024533 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24534 if (!_new_children) {
24535 p->error_indicator = 1;
24536 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024537 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024538 return NULL;
24539 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024540 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024542 _children[_n++] = _res;
24543 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024545 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024546 D(fprintf(stderr, "%*c%s _loop1_151[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024549 if (_n == 0 || p->error_indicator) {
24550 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024551 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024552 return NULL;
24553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024554 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24555 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024556 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024557 p->error_indicator = 1;
24558 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024559 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024560 return NULL;
24561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024562 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24563 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000024564 _PyPegen_insert_memo(p, _start_mark, _loop1_151_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024565 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024566 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024567}
24568
Pablo Galindo87c87b52020-11-18 23:44:30 +000024569// _loop1_152: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024570static asdl_seq *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024571_loop1_152_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024572{
24573 D(p->level++);
24574 if (p->error_indicator) {
24575 D(p->level--);
24576 return NULL;
24577 }
24578 void *_res = NULL;
24579 int _mark = p->mark;
24580 int _start_mark = p->mark;
24581 void **_children = PyMem_Malloc(sizeof(void *));
24582 if (!_children) {
24583 p->error_indicator = 1;
24584 PyErr_NoMemory();
24585 D(p->level--);
24586 return NULL;
24587 }
24588 ssize_t _children_capacity = 1;
24589 ssize_t _n = 0;
24590 { // lambda_param_with_default
24591 if (p->error_indicator) {
24592 D(p->level--);
24593 return NULL;
24594 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024595 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024596 NameDefaultPair* lambda_param_with_default_var;
24597 while (
24598 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24599 )
24600 {
24601 _res = lambda_param_with_default_var;
24602 if (_n == _children_capacity) {
24603 _children_capacity *= 2;
24604 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24605 if (!_new_children) {
24606 p->error_indicator = 1;
24607 PyErr_NoMemory();
24608 D(p->level--);
24609 return NULL;
24610 }
24611 _children = _new_children;
24612 }
24613 _children[_n++] = _res;
24614 _mark = p->mark;
24615 }
24616 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024617 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24619 }
24620 if (_n == 0 || p->error_indicator) {
24621 PyMem_Free(_children);
24622 D(p->level--);
24623 return NULL;
24624 }
24625 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24626 if (!_seq) {
24627 PyMem_Free(_children);
24628 p->error_indicator = 1;
24629 PyErr_NoMemory();
24630 D(p->level--);
24631 return NULL;
24632 }
24633 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24634 PyMem_Free(_children);
Pablo Galindo87c87b52020-11-18 23:44:30 +000024635 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024636 D(p->level--);
24637 return _seq;
24638}
24639
Pablo Galindo87c87b52020-11-18 23:44:30 +000024640// _tmp_153: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024641static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024642_tmp_153_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024643{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024644 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024646 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024647 return NULL;
24648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024649 void * _res = NULL;
24650 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024651 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024652 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024653 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024654 return NULL;
24655 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024656 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024657 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024658 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024659 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024660 )
24661 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024662 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024663 _res = _literal;
24664 goto done;
24665 }
24666 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024667 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24669 }
24670 { // '**'
24671 if (p->error_indicator) {
24672 D(p->level--);
24673 return NULL;
24674 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024675 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024676 Token * _literal;
24677 if (
24678 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24679 )
24680 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024681 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024682 _res = _literal;
24683 goto done;
24684 }
24685 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024686 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24688 }
24689 _res = NULL;
24690 done:
24691 D(p->level--);
24692 return _res;
24693}
24694
Pablo Galindo87c87b52020-11-18 23:44:30 +000024695// _tmp_154: ':' | '**'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024696static void *
Pablo Galindo87c87b52020-11-18 23:44:30 +000024697_tmp_154_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024698{
24699 D(p->level++);
24700 if (p->error_indicator) {
24701 D(p->level--);
24702 return NULL;
24703 }
24704 void * _res = NULL;
24705 int _mark = p->mark;
24706 { // ':'
24707 if (p->error_indicator) {
24708 D(p->level--);
24709 return NULL;
24710 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024711 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024712 Token * _literal;
24713 if (
24714 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24715 )
24716 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024717 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024718 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024719 goto done;
24720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024721 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024722 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024724 }
24725 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024727 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024728 return NULL;
24729 }
Pablo Galindo87c87b52020-11-18 23:44:30 +000024730 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024731 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024732 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024733 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024734 )
24735 {
Pablo Galindo87c87b52020-11-18 23:44:30 +000024736 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024737 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024738 goto done;
24739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024740 p->mark = _mark;
Pablo Galindo87c87b52020-11-18 23:44:30 +000024741 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024744 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024745 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024747 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024748}
24749
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024750void *
24751_PyPegen_parse(Parser *p)
24752{
24753 // Initialize keywords
24754 p->keywords = reserved_keywords;
24755 p->n_keyword_lists = n_keyword_lists;
24756
24757 // Run parser
24758 void *result = NULL;
24759 if (p->start_rule == Py_file_input) {
24760 result = file_rule(p);
24761 } else if (p->start_rule == Py_single_input) {
24762 result = interactive_rule(p);
24763 } else if (p->start_rule == Py_eval_input) {
24764 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024765 } else if (p->start_rule == Py_func_type_input) {
24766 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024767 } else if (p->start_rule == Py_fstring_input) {
24768 result = fstring_rule(p);
24769 }
24770
24771 return result;
24772}
24773
24774// The end