blob: 16b3f6f7abfb0c2894783a4904f55b15185ef587 [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[] = {
12 NULL,
13 NULL,
14 (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 },
68 NULL,
69 NULL,
70 NULL,
71 NULL,
72 NULL,
73 (KeywordToken[]) {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030074 {"__peg_parser__", 531},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010075 {NULL, -1},
76 },
77};
78#define file_type 1000
79#define interactive_type 1001
80#define eval_type 1002
Guido van Rossumc001c092020-04-30 12:12:19 -070081#define func_type_type 1003
82#define fstring_type 1004
83#define type_expressions_type 1005
84#define statements_type 1006
85#define statement_type 1007
86#define statement_newline_type 1008
87#define simple_stmt_type 1009
88#define small_stmt_type 1010
89#define compound_stmt_type 1011
90#define assignment_type 1012
91#define augassign_type 1013
92#define global_stmt_type 1014
93#define nonlocal_stmt_type 1015
94#define yield_stmt_type 1016
95#define assert_stmt_type 1017
96#define del_stmt_type 1018
97#define import_stmt_type 1019
98#define import_name_type 1020
99#define import_from_type 1021
100#define import_from_targets_type 1022
101#define import_from_as_names_type 1023
102#define import_from_as_name_type 1024
103#define dotted_as_names_type 1025
104#define dotted_as_name_type 1026
105#define dotted_name_type 1027 // Left-recursive
106#define if_stmt_type 1028
107#define elif_stmt_type 1029
108#define else_block_type 1030
109#define while_stmt_type 1031
110#define for_stmt_type 1032
111#define with_stmt_type 1033
112#define with_item_type 1034
113#define try_stmt_type 1035
114#define except_block_type 1036
115#define finally_block_type 1037
116#define return_stmt_type 1038
117#define raise_stmt_type 1039
118#define function_def_type 1040
119#define function_def_raw_type 1041
120#define func_type_comment_type 1042
121#define params_type 1043
122#define parameters_type 1044
123#define slash_no_default_type 1045
124#define slash_with_default_type 1046
125#define star_etc_type 1047
126#define kwds_type 1048
127#define param_no_default_type 1049
128#define param_with_default_type 1050
129#define param_maybe_default_type 1051
130#define param_type 1052
131#define annotation_type 1053
132#define default_type 1054
133#define decorators_type 1055
134#define class_def_type 1056
135#define class_def_raw_type 1057
136#define block_type 1058
137#define expressions_list_type 1059
138#define star_expressions_type 1060
139#define star_expression_type 1061
140#define star_named_expressions_type 1062
141#define star_named_expression_type 1063
142#define named_expression_type 1064
143#define annotated_rhs_type 1065
144#define expressions_type 1066
145#define expression_type 1067
146#define lambdef_type 1068
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700147#define lambda_params_type 1069
148#define lambda_parameters_type 1070
149#define lambda_slash_no_default_type 1071
150#define lambda_slash_with_default_type 1072
151#define lambda_star_etc_type 1073
152#define lambda_kwds_type 1074
153#define lambda_param_no_default_type 1075
154#define lambda_param_with_default_type 1076
155#define lambda_param_maybe_default_type 1077
156#define lambda_param_type 1078
157#define disjunction_type 1079
158#define conjunction_type 1080
159#define inversion_type 1081
160#define comparison_type 1082
161#define compare_op_bitwise_or_pair_type 1083
162#define eq_bitwise_or_type 1084
163#define noteq_bitwise_or_type 1085
164#define lte_bitwise_or_type 1086
165#define lt_bitwise_or_type 1087
166#define gte_bitwise_or_type 1088
167#define gt_bitwise_or_type 1089
168#define notin_bitwise_or_type 1090
169#define in_bitwise_or_type 1091
170#define isnot_bitwise_or_type 1092
171#define is_bitwise_or_type 1093
172#define bitwise_or_type 1094 // Left-recursive
173#define bitwise_xor_type 1095 // Left-recursive
174#define bitwise_and_type 1096 // Left-recursive
175#define shift_expr_type 1097 // Left-recursive
176#define sum_type 1098 // Left-recursive
177#define term_type 1099 // Left-recursive
178#define factor_type 1100
179#define power_type 1101
180#define await_primary_type 1102
181#define primary_type 1103 // Left-recursive
182#define slices_type 1104
183#define slice_type 1105
184#define atom_type 1106
185#define strings_type 1107
186#define list_type 1108
187#define listcomp_type 1109
188#define tuple_type 1110
189#define group_type 1111
190#define genexp_type 1112
191#define set_type 1113
192#define setcomp_type 1114
193#define dict_type 1115
194#define dictcomp_type 1116
195#define double_starred_kvpairs_type 1117
196#define double_starred_kvpair_type 1118
197#define kvpair_type 1119
198#define for_if_clauses_type 1120
199#define for_if_clause_type 1121
200#define yield_expr_type 1122
201#define arguments_type 1123
202#define args_type 1124
203#define kwargs_type 1125
204#define starred_expression_type 1126
205#define kwarg_or_starred_type 1127
206#define kwarg_or_double_starred_type 1128
207#define star_targets_type 1129
208#define star_targets_seq_type 1130
209#define star_target_type 1131
210#define star_atom_type 1132
211#define single_target_type 1133
212#define single_subscript_attribute_target_type 1134
213#define del_targets_type 1135
214#define del_target_type 1136
215#define del_t_atom_type 1137
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300216#define targets_type 1138
217#define target_type 1139
218#define t_primary_type 1140 // Left-recursive
219#define t_lookahead_type 1141
220#define t_atom_type 1142
221#define incorrect_arguments_type 1143
222#define invalid_kwarg_type 1144
223#define invalid_named_expression_type 1145
224#define invalid_assignment_type 1146
225#define invalid_del_stmt_type 1147
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700226#define invalid_block_type 1148
227#define invalid_comprehension_type 1149
228#define invalid_dict_comprehension_type 1150
229#define invalid_parameters_type 1151
230#define invalid_lambda_parameters_type 1152
231#define invalid_star_etc_type 1153
232#define invalid_lambda_star_etc_type 1154
233#define invalid_double_type_comments_type 1155
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300234#define invalid_with_item_type 1156
235#define invalid_for_target_type 1157
236#define invalid_group_type 1158
237#define invalid_import_from_targets_type 1159
238#define _loop0_1_type 1160
239#define _loop0_2_type 1161
240#define _loop0_4_type 1162
241#define _gather_3_type 1163
242#define _loop0_6_type 1164
243#define _gather_5_type 1165
244#define _loop0_8_type 1166
245#define _gather_7_type 1167
246#define _loop0_10_type 1168
247#define _gather_9_type 1169
248#define _loop1_11_type 1170
249#define _loop0_13_type 1171
250#define _gather_12_type 1172
251#define _tmp_14_type 1173
252#define _tmp_15_type 1174
253#define _tmp_16_type 1175
254#define _tmp_17_type 1176
255#define _tmp_18_type 1177
256#define _tmp_19_type 1178
257#define _tmp_20_type 1179
258#define _tmp_21_type 1180
259#define _loop1_22_type 1181
260#define _tmp_23_type 1182
261#define _tmp_24_type 1183
262#define _loop0_26_type 1184
263#define _gather_25_type 1185
264#define _loop0_28_type 1186
265#define _gather_27_type 1187
266#define _tmp_29_type 1188
267#define _tmp_30_type 1189
268#define _loop0_31_type 1190
269#define _loop1_32_type 1191
270#define _loop0_34_type 1192
271#define _gather_33_type 1193
272#define _tmp_35_type 1194
273#define _loop0_37_type 1195
274#define _gather_36_type 1196
275#define _tmp_38_type 1197
276#define _loop0_40_type 1198
277#define _gather_39_type 1199
278#define _loop0_42_type 1200
279#define _gather_41_type 1201
280#define _loop0_44_type 1202
281#define _gather_43_type 1203
282#define _loop0_46_type 1204
283#define _gather_45_type 1205
284#define _tmp_47_type 1206
285#define _loop1_48_type 1207
286#define _tmp_49_type 1208
287#define _tmp_50_type 1209
288#define _tmp_51_type 1210
289#define _tmp_52_type 1211
290#define _tmp_53_type 1212
291#define _loop0_54_type 1213
292#define _loop0_55_type 1214
293#define _loop0_56_type 1215
294#define _loop1_57_type 1216
295#define _loop0_58_type 1217
296#define _loop1_59_type 1218
297#define _loop1_60_type 1219
298#define _loop1_61_type 1220
299#define _loop0_62_type 1221
300#define _loop1_63_type 1222
301#define _loop0_64_type 1223
302#define _loop1_65_type 1224
303#define _loop0_66_type 1225
304#define _loop1_67_type 1226
305#define _loop1_68_type 1227
306#define _tmp_69_type 1228
307#define _loop0_71_type 1229
308#define _gather_70_type 1230
309#define _loop1_72_type 1231
310#define _loop0_74_type 1232
311#define _gather_73_type 1233
312#define _loop1_75_type 1234
313#define _loop0_76_type 1235
314#define _loop0_77_type 1236
315#define _loop0_78_type 1237
316#define _loop1_79_type 1238
317#define _loop0_80_type 1239
318#define _loop1_81_type 1240
319#define _loop1_82_type 1241
320#define _loop1_83_type 1242
321#define _loop0_84_type 1243
322#define _loop1_85_type 1244
323#define _loop0_86_type 1245
324#define _loop1_87_type 1246
325#define _loop0_88_type 1247
326#define _loop1_89_type 1248
327#define _loop1_90_type 1249
328#define _loop1_91_type 1250
329#define _loop1_92_type 1251
330#define _tmp_93_type 1252
331#define _loop0_95_type 1253
332#define _gather_94_type 1254
333#define _tmp_96_type 1255
334#define _tmp_97_type 1256
335#define _tmp_98_type 1257
336#define _tmp_99_type 1258
337#define _loop1_100_type 1259
338#define _tmp_101_type 1260
339#define _tmp_102_type 1261
340#define _loop0_104_type 1262
341#define _gather_103_type 1263
342#define _loop1_105_type 1264
343#define _loop0_106_type 1265
344#define _loop0_107_type 1266
345#define _tmp_108_type 1267
346#define _tmp_109_type 1268
347#define _loop0_111_type 1269
348#define _gather_110_type 1270
349#define _loop0_113_type 1271
350#define _gather_112_type 1272
351#define _loop0_115_type 1273
352#define _gather_114_type 1274
353#define _loop0_117_type 1275
354#define _gather_116_type 1276
355#define _loop0_118_type 1277
356#define _loop0_120_type 1278
357#define _gather_119_type 1279
358#define _tmp_121_type 1280
359#define _loop0_123_type 1281
360#define _gather_122_type 1282
361#define _loop0_125_type 1283
362#define _gather_124_type 1284
363#define _tmp_126_type 1285
364#define _loop0_127_type 1286
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300365#define _loop0_128_type 1287
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300366#define _loop0_129_type 1288
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300367#define _tmp_130_type 1289
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300368#define _tmp_131_type 1290
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300369#define _loop0_132_type 1291
370#define _tmp_133_type 1292
371#define _loop0_134_type 1293
372#define _tmp_135_type 1294
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300373#define _tmp_136_type 1295
374#define _tmp_137_type 1296
375#define _tmp_138_type 1297
376#define _tmp_139_type 1298
377#define _tmp_140_type 1299
378#define _tmp_141_type 1300
379#define _tmp_142_type 1301
380#define _tmp_143_type 1302
381#define _tmp_144_type 1303
382#define _tmp_145_type 1304
383#define _tmp_146_type 1305
384#define _tmp_147_type 1306
385#define _tmp_148_type 1307
386#define _tmp_149_type 1308
387#define _tmp_150_type 1309
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300388#define _loop1_151_type 1310
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300389#define _loop1_152_type 1311
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300390#define _tmp_153_type 1312
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300391#define _tmp_154_type 1313
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100392
393static mod_ty file_rule(Parser *p);
394static mod_ty interactive_rule(Parser *p);
395static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700396static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100397static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700398static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100399static asdl_seq* statements_rule(Parser *p);
400static asdl_seq* statement_rule(Parser *p);
401static asdl_seq* statement_newline_rule(Parser *p);
402static asdl_seq* simple_stmt_rule(Parser *p);
403static stmt_ty small_stmt_rule(Parser *p);
404static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300405static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100406static AugOperator* augassign_rule(Parser *p);
407static stmt_ty global_stmt_rule(Parser *p);
408static stmt_ty nonlocal_stmt_rule(Parser *p);
409static stmt_ty yield_stmt_rule(Parser *p);
410static stmt_ty assert_stmt_rule(Parser *p);
411static stmt_ty del_stmt_rule(Parser *p);
412static stmt_ty import_stmt_rule(Parser *p);
413static stmt_ty import_name_rule(Parser *p);
414static stmt_ty import_from_rule(Parser *p);
415static asdl_seq* import_from_targets_rule(Parser *p);
416static asdl_seq* import_from_as_names_rule(Parser *p);
417static alias_ty import_from_as_name_rule(Parser *p);
418static asdl_seq* dotted_as_names_rule(Parser *p);
419static alias_ty dotted_as_name_rule(Parser *p);
420static expr_ty dotted_name_rule(Parser *p);
421static stmt_ty if_stmt_rule(Parser *p);
422static stmt_ty elif_stmt_rule(Parser *p);
423static asdl_seq* else_block_rule(Parser *p);
424static stmt_ty while_stmt_rule(Parser *p);
425static stmt_ty for_stmt_rule(Parser *p);
426static stmt_ty with_stmt_rule(Parser *p);
427static withitem_ty with_item_rule(Parser *p);
428static stmt_ty try_stmt_rule(Parser *p);
429static excepthandler_ty except_block_rule(Parser *p);
430static asdl_seq* finally_block_rule(Parser *p);
431static stmt_ty return_stmt_rule(Parser *p);
432static stmt_ty raise_stmt_rule(Parser *p);
433static stmt_ty function_def_rule(Parser *p);
434static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100435static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100436static arguments_ty params_rule(Parser *p);
437static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700438static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100439static SlashWithDefault* slash_with_default_rule(Parser *p);
440static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100441static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700442static arg_ty param_no_default_rule(Parser *p);
443static NameDefaultPair* param_with_default_rule(Parser *p);
444static NameDefaultPair* param_maybe_default_rule(Parser *p);
445static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100446static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700447static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100448static asdl_seq* decorators_rule(Parser *p);
449static stmt_ty class_def_rule(Parser *p);
450static stmt_ty class_def_raw_rule(Parser *p);
451static asdl_seq* block_rule(Parser *p);
452static asdl_seq* expressions_list_rule(Parser *p);
453static 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);
536static void *incorrect_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);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300540static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100541static void *invalid_block_rule(Parser *p);
542static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700543static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100544static void *invalid_parameters_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700545static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300546static void *invalid_star_etc_rule(Parser *p);
547static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700548static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300549static void *invalid_with_item_rule(Parser *p);
550static void *invalid_for_target_rule(Parser *p);
551static void *invalid_group_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100552static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100553static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700554static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100555static asdl_seq *_loop0_4_rule(Parser *p);
556static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700557static asdl_seq *_loop0_6_rule(Parser *p);
558static asdl_seq *_gather_5_rule(Parser *p);
559static asdl_seq *_loop0_8_rule(Parser *p);
560static asdl_seq *_gather_7_rule(Parser *p);
561static asdl_seq *_loop0_10_rule(Parser *p);
562static asdl_seq *_gather_9_rule(Parser *p);
563static asdl_seq *_loop1_11_rule(Parser *p);
564static asdl_seq *_loop0_13_rule(Parser *p);
565static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100566static void *_tmp_14_rule(Parser *p);
567static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700568static void *_tmp_16_rule(Parser *p);
569static void *_tmp_17_rule(Parser *p);
570static void *_tmp_18_rule(Parser *p);
571static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100572static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700573static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100574static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700575static void *_tmp_23_rule(Parser *p);
576static void *_tmp_24_rule(Parser *p);
577static asdl_seq *_loop0_26_rule(Parser *p);
578static asdl_seq *_gather_25_rule(Parser *p);
579static asdl_seq *_loop0_28_rule(Parser *p);
580static asdl_seq *_gather_27_rule(Parser *p);
581static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300582static void *_tmp_30_rule(Parser *p);
583static asdl_seq *_loop0_31_rule(Parser *p);
584static asdl_seq *_loop1_32_rule(Parser *p);
585static asdl_seq *_loop0_34_rule(Parser *p);
586static asdl_seq *_gather_33_rule(Parser *p);
587static void *_tmp_35_rule(Parser *p);
588static asdl_seq *_loop0_37_rule(Parser *p);
589static asdl_seq *_gather_36_rule(Parser *p);
590static void *_tmp_38_rule(Parser *p);
591static asdl_seq *_loop0_40_rule(Parser *p);
592static asdl_seq *_gather_39_rule(Parser *p);
593static asdl_seq *_loop0_42_rule(Parser *p);
594static asdl_seq *_gather_41_rule(Parser *p);
595static asdl_seq *_loop0_44_rule(Parser *p);
596static asdl_seq *_gather_43_rule(Parser *p);
597static asdl_seq *_loop0_46_rule(Parser *p);
598static asdl_seq *_gather_45_rule(Parser *p);
599static void *_tmp_47_rule(Parser *p);
600static asdl_seq *_loop1_48_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300601static void *_tmp_49_rule(Parser *p);
602static void *_tmp_50_rule(Parser *p);
603static void *_tmp_51_rule(Parser *p);
604static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300605static void *_tmp_53_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300606static asdl_seq *_loop0_54_rule(Parser *p);
607static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300608static asdl_seq *_loop0_56_rule(Parser *p);
609static asdl_seq *_loop1_57_rule(Parser *p);
610static asdl_seq *_loop0_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700611static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300612static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300613static asdl_seq *_loop1_61_rule(Parser *p);
614static asdl_seq *_loop0_62_rule(Parser *p);
615static asdl_seq *_loop1_63_rule(Parser *p);
616static asdl_seq *_loop0_64_rule(Parser *p);
617static asdl_seq *_loop1_65_rule(Parser *p);
618static asdl_seq *_loop0_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300619static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300620static asdl_seq *_loop1_68_rule(Parser *p);
621static void *_tmp_69_rule(Parser *p);
622static asdl_seq *_loop0_71_rule(Parser *p);
623static asdl_seq *_gather_70_rule(Parser *p);
624static asdl_seq *_loop1_72_rule(Parser *p);
625static asdl_seq *_loop0_74_rule(Parser *p);
626static asdl_seq *_gather_73_rule(Parser *p);
627static asdl_seq *_loop1_75_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700628static asdl_seq *_loop0_76_rule(Parser *p);
629static asdl_seq *_loop0_77_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300630static asdl_seq *_loop0_78_rule(Parser *p);
631static asdl_seq *_loop1_79_rule(Parser *p);
632static asdl_seq *_loop0_80_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700633static asdl_seq *_loop1_81_rule(Parser *p);
634static asdl_seq *_loop1_82_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300635static asdl_seq *_loop1_83_rule(Parser *p);
636static asdl_seq *_loop0_84_rule(Parser *p);
637static asdl_seq *_loop1_85_rule(Parser *p);
638static asdl_seq *_loop0_86_rule(Parser *p);
639static asdl_seq *_loop1_87_rule(Parser *p);
640static asdl_seq *_loop0_88_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700641static asdl_seq *_loop1_89_rule(Parser *p);
642static asdl_seq *_loop1_90_rule(Parser *p);
643static asdl_seq *_loop1_91_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300644static asdl_seq *_loop1_92_rule(Parser *p);
645static void *_tmp_93_rule(Parser *p);
646static asdl_seq *_loop0_95_rule(Parser *p);
647static asdl_seq *_gather_94_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700648static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700649static void *_tmp_97_rule(Parser *p);
650static void *_tmp_98_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300651static void *_tmp_99_rule(Parser *p);
652static asdl_seq *_loop1_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300653static void *_tmp_101_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300654static void *_tmp_102_rule(Parser *p);
655static asdl_seq *_loop0_104_rule(Parser *p);
656static asdl_seq *_gather_103_rule(Parser *p);
657static asdl_seq *_loop1_105_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700658static asdl_seq *_loop0_106_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300659static asdl_seq *_loop0_107_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700660static void *_tmp_108_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300661static void *_tmp_109_rule(Parser *p);
662static asdl_seq *_loop0_111_rule(Parser *p);
663static asdl_seq *_gather_110_rule(Parser *p);
664static asdl_seq *_loop0_113_rule(Parser *p);
665static asdl_seq *_gather_112_rule(Parser *p);
666static asdl_seq *_loop0_115_rule(Parser *p);
667static asdl_seq *_gather_114_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700668static asdl_seq *_loop0_117_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300669static asdl_seq *_gather_116_rule(Parser *p);
670static asdl_seq *_loop0_118_rule(Parser *p);
671static asdl_seq *_loop0_120_rule(Parser *p);
672static asdl_seq *_gather_119_rule(Parser *p);
673static void *_tmp_121_rule(Parser *p);
674static asdl_seq *_loop0_123_rule(Parser *p);
675static asdl_seq *_gather_122_rule(Parser *p);
676static asdl_seq *_loop0_125_rule(Parser *p);
677static asdl_seq *_gather_124_rule(Parser *p);
678static void *_tmp_126_rule(Parser *p);
679static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300680static asdl_seq *_loop0_128_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700681static asdl_seq *_loop0_129_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300682static void *_tmp_130_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700683static void *_tmp_131_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300684static asdl_seq *_loop0_132_rule(Parser *p);
685static void *_tmp_133_rule(Parser *p);
686static asdl_seq *_loop0_134_rule(Parser *p);
687static void *_tmp_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700688static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100689static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700690static void *_tmp_138_rule(Parser *p);
691static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300692static void *_tmp_140_rule(Parser *p);
693static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700694static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300695static void *_tmp_143_rule(Parser *p);
696static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300697static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700698static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300699static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300700static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700701static void *_tmp_149_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700702static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300703static asdl_seq *_loop1_151_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700704static asdl_seq *_loop1_152_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300705static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700706static void *_tmp_154_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100707
708
709// file: statements? $
710static mod_ty
711file_rule(Parser *p)
712{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700713 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100716 return NULL;
717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100718 mod_ty _res = NULL;
719 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100720 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300723 return NULL;
724 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700725 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100726 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100727 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100728 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100729 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100730 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100731 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100732 )
733 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700734 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100735 _res = _PyPegen_make_module ( p , a );
736 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100737 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700738 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100739 return NULL;
740 }
741 goto done;
742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100743 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700744 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100747 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100748 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700749 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100750 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100751}
752
753// interactive: statement_newline
754static mod_ty
755interactive_rule(Parser *p)
756{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700757 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100760 return NULL;
761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100762 mod_ty _res = NULL;
763 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100764 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700766 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300767 return NULL;
768 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700769 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100770 asdl_seq* a;
771 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100772 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100773 )
774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700775 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100776 _res = Interactive ( a , p -> arena );
777 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100780 return NULL;
781 }
782 goto done;
783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100784 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700785 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100788 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100789 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700790 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100791 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100792}
793
794// eval: expressions NEWLINE* $
795static mod_ty
796eval_rule(Parser *p)
797{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700798 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100801 return NULL;
802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100803 mod_ty _res = NULL;
804 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100805 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700807 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300808 return NULL;
809 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700810 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100811 asdl_seq * _loop0_1_var;
812 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100813 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100814 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100815 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100816 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100817 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100818 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100819 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100820 )
821 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700822 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100823 _res = Expression ( a , p -> arena );
824 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100825 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100827 return NULL;
828 }
829 goto done;
830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100831 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700832 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100835 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100836 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100838 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100839}
840
Guido van Rossumc001c092020-04-30 12:12:19 -0700841// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
842static mod_ty
843func_type_rule(Parser *p)
844{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700845 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700847 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700848 return NULL;
849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100850 mod_ty _res = NULL;
851 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700852 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700854 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300855 return NULL;
856 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700857 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 +0100858 Token * _literal;
859 Token * _literal_1;
860 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700861 asdl_seq * _loop0_2_var;
862 void *a;
863 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100864 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700865 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100866 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700867 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100868 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700869 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100870 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700871 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100872 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100874 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100876 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700877 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100878 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 )
880 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700881 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 +0100882 _res = FunctionType ( a , b , p -> arena );
883 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700884 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700885 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700886 return NULL;
887 }
888 goto done;
889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100890 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700891 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100894 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700895 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700896 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100897 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700898}
899
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100900// fstring: star_expressions
901static expr_ty
902fstring_rule(Parser *p)
903{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700904 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700906 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100907 return NULL;
908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100909 expr_ty _res = NULL;
910 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100911 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700913 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300914 return NULL;
915 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700916 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100917 expr_ty star_expressions_var;
918 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100919 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100920 )
921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700922 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100923 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100924 goto done;
925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700927 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100930 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100931 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700932 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100933 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100934}
935
Guido van Rossumc001c092020-04-30 12:12:19 -0700936// type_expressions:
937// | ','.expression+ ',' '*' expression ',' '**' expression
938// | ','.expression+ ',' '*' expression
939// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700940// | '*' expression ',' '**' expression
941// | '*' expression
942// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700943// | ','.expression+
944static asdl_seq*
945type_expressions_rule(Parser *p)
946{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700947 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700948 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700949 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700950 return NULL;
951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100952 asdl_seq* _res = NULL;
953 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700954 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300957 return NULL;
958 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700959 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 +0100960 Token * _literal;
961 Token * _literal_1;
962 Token * _literal_2;
963 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700964 asdl_seq * a;
965 expr_ty b;
966 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700967 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100968 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700969 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100970 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700971 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100972 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700973 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100974 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100976 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700979 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100980 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 )
982 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700983 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 +0100984 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
985 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700986 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700987 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700988 return NULL;
989 }
990 goto done;
991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100992 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700993 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700995 }
996 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700998 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300999 return NULL;
1000 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001001 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001002 Token * _literal;
1003 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001004 asdl_seq * a;
1005 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001006 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001007 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001008 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001009 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001010 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001011 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -07001012 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001013 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 )
1015 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001016 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 +01001017 _res = _PyPegen_seq_append_to_end ( p , a , b );
1018 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001020 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001021 return NULL;
1022 }
1023 goto done;
1024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001026 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001028 }
1029 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001031 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001032 return NULL;
1033 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001034 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001035 Token * _literal;
1036 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001037 asdl_seq * a;
1038 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001039 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001040 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001041 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001042 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001043 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001044 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001045 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001046 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 )
1048 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001049 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 +01001050 _res = _PyPegen_seq_append_to_end ( p , a , b );
1051 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001052 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001053 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001054 return NULL;
1055 }
1056 goto done;
1057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001058 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001059 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001061 }
Shantanu603d3542020-05-03 22:08:14 -07001062 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001063 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001064 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001065 return NULL;
1066 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001067 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001068 Token * _literal;
1069 Token * _literal_1;
1070 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001071 expr_ty a;
1072 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001073 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001074 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001075 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001076 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001077 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001078 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001079 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001080 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001081 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001082 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001083 )
1084 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001085 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 +01001086 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1087 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001088 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001089 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001090 return NULL;
1091 }
1092 goto done;
1093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001094 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001095 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001097 }
1098 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001101 return NULL;
1102 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001103 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001104 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001105 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001106 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001107 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001108 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001109 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001110 )
1111 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001112 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001113 _res = _PyPegen_singleton_seq ( p , a );
1114 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001115 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001116 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001117 return NULL;
1118 }
1119 goto done;
1120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001121 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001122 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001124 }
1125 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001127 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001128 return NULL;
1129 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001130 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001131 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001132 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001133 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001134 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001135 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001136 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001137 )
1138 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001139 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001140 _res = _PyPegen_singleton_seq ( p , a );
1141 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001142 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001143 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001144 return NULL;
1145 }
1146 goto done;
1147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001148 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001149 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001151 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001152 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001153 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001154 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001155 return NULL;
1156 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001157 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001158 asdl_seq * _gather_9_var;
1159 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001160 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001161 )
1162 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001163 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001164 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001165 goto done;
1166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001167 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001168 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001171 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001172 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001173 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001174 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001175}
1176
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001177// statements: statement+
1178static asdl_seq*
1179statements_rule(Parser *p)
1180{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001181 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001183 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001184 return NULL;
1185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001186 asdl_seq* _res = NULL;
1187 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001188 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001189 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001190 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001191 return NULL;
1192 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001193 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001194 asdl_seq * a;
1195 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001196 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001197 )
1198 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001199 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001200 _res = _PyPegen_seq_flatten ( p , a );
1201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001204 return NULL;
1205 }
1206 goto done;
1207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001209 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001212 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001213 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001214 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001215 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001216}
1217
1218// statement: compound_stmt | simple_stmt
1219static asdl_seq*
1220statement_rule(Parser *p)
1221{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001222 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001225 return NULL;
1226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001227 asdl_seq* _res = NULL;
1228 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001229 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001232 return NULL;
1233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001234 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001235 stmt_ty a;
1236 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001237 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001238 )
1239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001240 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001241 _res = _PyPegen_singleton_seq ( p , a );
1242 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001243 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001244 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001245 return NULL;
1246 }
1247 goto done;
1248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001249 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001250 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001252 }
1253 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001255 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001256 return NULL;
1257 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001258 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001259 asdl_seq* simple_stmt_var;
1260 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001261 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001262 )
1263 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001264 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001265 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001266 goto done;
1267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001268 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001269 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001272 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001273 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001274 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001275 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001276}
1277
1278// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1279static asdl_seq*
1280statement_newline_rule(Parser *p)
1281{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001282 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001285 return NULL;
1286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001287 asdl_seq* _res = NULL;
1288 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001289 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001292 return NULL;
1293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001294 int _start_lineno = p->tokens[_mark]->lineno;
1295 UNUSED(_start_lineno); // Only used by EXTRA macro
1296 int _start_col_offset = p->tokens[_mark]->col_offset;
1297 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001298 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001300 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001301 return NULL;
1302 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001303 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 +01001304 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001305 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001307 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001308 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001309 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001310 )
1311 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001312 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 +01001313 _res = _PyPegen_singleton_seq ( p , a );
1314 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001317 return NULL;
1318 }
1319 goto done;
1320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001321 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001322 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001324 }
1325 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001326 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001327 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001328 return NULL;
1329 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001330 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001331 asdl_seq* simple_stmt_var;
1332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001333 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001334 )
1335 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001336 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 +01001337 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001338 goto done;
1339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001340 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001341 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001343 }
1344 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001345 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001346 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001347 return NULL;
1348 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001349 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001350 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001351 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001352 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001353 )
1354 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001355 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1357 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001358 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001359 return NULL;
1360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001361 int _end_lineno = _token->end_lineno;
1362 UNUSED(_end_lineno); // Only used by EXTRA macro
1363 int _end_col_offset = _token->end_col_offset;
1364 UNUSED(_end_col_offset); // Only used by EXTRA macro
1365 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1366 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001367 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001368 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001369 return NULL;
1370 }
1371 goto done;
1372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001373 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001374 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001376 }
1377 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001379 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001380 return NULL;
1381 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001382 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001383 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001384 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001385 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001386 )
1387 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001388 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001389 _res = _PyPegen_interactive_exit ( p );
1390 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001391 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001393 return NULL;
1394 }
1395 goto done;
1396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001397 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001398 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001401 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001402 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001403 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001404 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001405}
1406
1407// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1408static asdl_seq*
1409simple_stmt_rule(Parser *p)
1410{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001411 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001413 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001414 return NULL;
1415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001416 asdl_seq* _res = NULL;
1417 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001418 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001419 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001420 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001421 return NULL;
1422 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001423 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 +01001424 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001425 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001426 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001427 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001428 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001429 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001430 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001431 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001432 )
1433 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001434 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 +01001435 _res = _PyPegen_singleton_seq ( p , a );
1436 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001437 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001438 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001439 return NULL;
1440 }
1441 goto done;
1442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001443 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001444 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001446 }
1447 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001450 return NULL;
1451 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001452 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 +01001453 void *_opt_var;
1454 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001455 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001456 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001457 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001458 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001459 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001460 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001461 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001462 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 )
1464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001465 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 +01001466 _res = a;
1467 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001468 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001470 return NULL;
1471 }
1472 goto done;
1473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001475 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001478 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001479 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001480 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001481 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001482}
1483
1484// small_stmt:
1485// | assignment
1486// | star_expressions
1487// | &'return' return_stmt
1488// | &('import' | 'from') import_stmt
1489// | &'raise' raise_stmt
1490// | 'pass'
1491// | &'del' del_stmt
1492// | &'yield' yield_stmt
1493// | &'assert' assert_stmt
1494// | 'break'
1495// | 'continue'
1496// | &'global' global_stmt
1497// | &'nonlocal' nonlocal_stmt
1498static stmt_ty
1499small_stmt_rule(Parser *p)
1500{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001501 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001503 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001504 return NULL;
1505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001506 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001507 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1508 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001509 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001511 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001512 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1513 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001515 return NULL;
1516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001517 int _start_lineno = p->tokens[_mark]->lineno;
1518 UNUSED(_start_lineno); // Only used by EXTRA macro
1519 int _start_col_offset = p->tokens[_mark]->col_offset;
1520 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001521 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001522 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001523 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001524 return NULL;
1525 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001526 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001527 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001528 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001529 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001530 )
1531 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001532 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001533 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001534 goto done;
1535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001536 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001537 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001539 }
1540 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001541 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001542 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001543 return NULL;
1544 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001545 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001546 expr_ty e;
1547 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001548 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001549 )
1550 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001551 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 +01001552 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1553 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001555 return NULL;
1556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001557 int _end_lineno = _token->end_lineno;
1558 UNUSED(_end_lineno); // Only used by EXTRA macro
1559 int _end_col_offset = _token->end_col_offset;
1560 UNUSED(_end_col_offset); // Only used by EXTRA macro
1561 _res = _Py_Expr ( e , EXTRA );
1562 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001563 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001564 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001565 return NULL;
1566 }
1567 goto done;
1568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001569 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001570 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001572 }
1573 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001574 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001575 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001576 return NULL;
1577 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001578 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 +01001579 stmt_ty return_stmt_var;
1580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001581 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001582 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001583 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001584 )
1585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001586 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 +01001587 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001588 goto done;
1589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001590 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001591 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001593 }
1594 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001596 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001597 return NULL;
1598 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001599 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 +01001600 stmt_ty import_stmt_var;
1601 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001602 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001603 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001604 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001605 )
1606 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001607 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 +01001608 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001609 goto done;
1610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001611 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001612 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001614 }
1615 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001616 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001617 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001618 return NULL;
1619 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001620 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 +01001621 stmt_ty raise_stmt_var;
1622 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001623 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001624 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001625 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001626 )
1627 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001628 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 +01001629 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001630 goto done;
1631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001632 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001633 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001635 }
1636 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001638 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001639 return NULL;
1640 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001641 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001642 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001643 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001644 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001645 )
1646 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001647 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001648 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1649 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001650 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001651 return NULL;
1652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001653 int _end_lineno = _token->end_lineno;
1654 UNUSED(_end_lineno); // Only used by EXTRA macro
1655 int _end_col_offset = _token->end_col_offset;
1656 UNUSED(_end_col_offset); // Only used by EXTRA macro
1657 _res = _Py_Pass ( EXTRA );
1658 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001659 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001660 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001661 return NULL;
1662 }
1663 goto done;
1664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001665 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001666 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001668 }
1669 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001672 return NULL;
1673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001674 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 +01001675 stmt_ty del_stmt_var;
1676 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001677 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001678 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001679 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001680 )
1681 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001682 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 +01001683 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001684 goto done;
1685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001686 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001687 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001689 }
1690 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001691 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001692 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001693 return NULL;
1694 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001695 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 +01001696 stmt_ty yield_stmt_var;
1697 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001698 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001699 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001700 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001701 )
1702 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001703 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 +01001704 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001705 goto done;
1706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001707 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001708 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001710 }
1711 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001713 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001714 return NULL;
1715 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001716 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 +01001717 stmt_ty assert_stmt_var;
1718 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001719 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001720 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001721 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001722 )
1723 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001724 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 +01001725 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001726 goto done;
1727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001728 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001729 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001731 }
1732 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001735 return NULL;
1736 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001737 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001738 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001739 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001740 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001741 )
1742 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001743 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1745 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001747 return NULL;
1748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001749 int _end_lineno = _token->end_lineno;
1750 UNUSED(_end_lineno); // Only used by EXTRA macro
1751 int _end_col_offset = _token->end_col_offset;
1752 UNUSED(_end_col_offset); // Only used by EXTRA macro
1753 _res = _Py_Break ( EXTRA );
1754 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001755 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001757 return NULL;
1758 }
1759 goto done;
1760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001761 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001762 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001764 }
1765 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001766 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001767 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001768 return NULL;
1769 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001770 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001771 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001772 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001773 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001774 )
1775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001776 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1778 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001780 return NULL;
1781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001782 int _end_lineno = _token->end_lineno;
1783 UNUSED(_end_lineno); // Only used by EXTRA macro
1784 int _end_col_offset = _token->end_col_offset;
1785 UNUSED(_end_col_offset); // Only used by EXTRA macro
1786 _res = _Py_Continue ( EXTRA );
1787 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001788 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001790 return NULL;
1791 }
1792 goto done;
1793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001794 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001795 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001797 }
1798 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001801 return NULL;
1802 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001803 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 +01001804 stmt_ty global_stmt_var;
1805 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001806 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001807 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001808 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001809 )
1810 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001811 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 +01001812 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001813 goto done;
1814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001815 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001816 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001818 }
1819 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001821 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001822 return NULL;
1823 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001824 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 +01001825 stmt_ty nonlocal_stmt_var;
1826 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001827 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001828 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001829 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001830 )
1831 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001832 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 +01001833 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001834 goto done;
1835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001837 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001840 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001841 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001842 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001843 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001844 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001845}
1846
1847// compound_stmt:
1848// | &('def' | '@' | ASYNC) function_def
1849// | &'if' if_stmt
1850// | &('class' | '@') class_def
1851// | &('with' | ASYNC) with_stmt
1852// | &('for' | ASYNC) for_stmt
1853// | &'try' try_stmt
1854// | &'while' while_stmt
1855static stmt_ty
1856compound_stmt_rule(Parser *p)
1857{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001858 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001859 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001861 return NULL;
1862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001863 stmt_ty _res = NULL;
1864 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001865 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001866 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001867 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001868 return NULL;
1869 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001870 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 +01001871 stmt_ty function_def_var;
1872 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001873 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001874 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001875 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001876 )
1877 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001878 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 +01001879 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001880 goto done;
1881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001882 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001883 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001885 }
1886 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001887 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001888 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001889 return NULL;
1890 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001891 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 +01001892 stmt_ty if_stmt_var;
1893 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001894 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001895 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001896 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001897 )
1898 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001899 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 +01001900 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001901 goto done;
1902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001903 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001904 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001906 }
1907 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001908 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001909 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001910 return NULL;
1911 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001912 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 +01001913 stmt_ty class_def_var;
1914 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001915 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001916 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001917 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001918 )
1919 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001920 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 +01001921 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001922 goto done;
1923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001924 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001925 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001927 }
1928 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001929 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001930 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001931 return NULL;
1932 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001933 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 +01001934 stmt_ty with_stmt_var;
1935 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001936 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001938 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001939 )
1940 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001941 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 +01001942 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001943 goto done;
1944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001945 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001946 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001948 }
1949 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001951 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001952 return NULL;
1953 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001954 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 +01001955 stmt_ty for_stmt_var;
1956 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001957 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001958 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001959 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001960 )
1961 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001962 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 +01001963 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001964 goto done;
1965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001966 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001967 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001969 }
1970 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001971 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001972 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001973 return NULL;
1974 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001975 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 +01001976 stmt_ty try_stmt_var;
1977 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001978 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001979 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001980 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001981 )
1982 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001983 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 +01001984 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001985 goto done;
1986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001988 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001990 }
1991 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001994 return NULL;
1995 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001996 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 +01001997 stmt_ty while_stmt_var;
1998 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001999 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002000 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002001 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002002 )
2003 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002004 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 +01002005 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002006 goto done;
2007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002008 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002009 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002012 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002013 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002015 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002016}
2017
2018// assignment:
2019// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002020// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002021// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002022// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002023// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002024static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002025assignment_rule(Parser *p)
2026{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002027 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002028 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002030 return NULL;
2031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002032 stmt_ty _res = NULL;
2033 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002034 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2035 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002036 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002037 return NULL;
2038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002039 int _start_lineno = p->tokens[_mark]->lineno;
2040 UNUSED(_start_lineno); // Only used by EXTRA macro
2041 int _start_col_offset = p->tokens[_mark]->col_offset;
2042 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002043 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002044 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002045 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002046 return NULL;
2047 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002048 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 +01002049 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002050 expr_ty a;
2051 expr_ty b;
2052 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002053 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002054 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002055 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002056 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002057 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002058 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002059 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002060 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 )
2062 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002063 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 +01002064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2065 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002067 return NULL;
2068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002069 int _end_lineno = _token->end_lineno;
2070 UNUSED(_end_lineno); // Only used by EXTRA macro
2071 int _end_col_offset = _token->end_col_offset;
2072 UNUSED(_end_col_offset); // Only used by EXTRA macro
2073 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2074 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002075 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002077 return NULL;
2078 }
2079 goto done;
2080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002081 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002082 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002084 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002085 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002088 return NULL;
2089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002090 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 +01002091 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002092 void *a;
2093 expr_ty b;
2094 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002095 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002096 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002097 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002098 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002099 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002100 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002101 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002102 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 )
2104 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002105 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 +01002106 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2107 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002108 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002109 return NULL;
2110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002111 int _end_lineno = _token->end_lineno;
2112 UNUSED(_end_lineno); // Only used by EXTRA macro
2113 int _end_col_offset = _token->end_col_offset;
2114 UNUSED(_end_col_offset); // Only used by EXTRA macro
2115 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2116 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002117 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002119 return NULL;
2120 }
2121 goto done;
2122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002123 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002124 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002126 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002127 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002130 return NULL;
2131 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002132 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 +01002133 asdl_seq * a;
2134 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002135 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002137 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002138 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002139 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002140 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002141 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2142 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002143 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002144 )
2145 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002146 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 +01002147 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2148 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002150 return NULL;
2151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002152 int _end_lineno = _token->end_lineno;
2153 UNUSED(_end_lineno); // Only used by EXTRA macro
2154 int _end_col_offset = _token->end_col_offset;
2155 UNUSED(_end_col_offset); // Only used by EXTRA macro
2156 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2157 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002158 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002159 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002160 return NULL;
2161 }
2162 goto done;
2163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002164 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002165 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002167 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002168 { // single_target augassign ~ (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002170 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002171 return NULL;
2172 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002173 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2174 int _cut_var = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002175 expr_ty a;
2176 AugOperator* b;
2177 void *c;
2178 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002179 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002180 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002181 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002182 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002183 (_cut_var = 1)
2184 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002185 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002186 )
2187 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002188 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 +01002189 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2190 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002191 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002192 return NULL;
2193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002194 int _end_lineno = _token->end_lineno;
2195 UNUSED(_end_lineno); // Only used by EXTRA macro
2196 int _end_col_offset = _token->end_col_offset;
2197 UNUSED(_end_col_offset); // Only used by EXTRA macro
2198 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2199 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002200 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002201 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002202 return NULL;
2203 }
2204 goto done;
2205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002206 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002207 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2209 if (_cut_var) {
2210 D(p->level--);
2211 return NULL;
2212 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002213 }
2214 { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002217 return NULL;
2218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002219 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002220 void *invalid_assignment_var;
2221 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002222 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002223 )
2224 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002225 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002226 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002227 goto done;
2228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002229 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002230 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002232 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002233 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002234 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002235 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002236 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002237}
2238
2239// augassign:
2240// | '+='
2241// | '-='
2242// | '*='
2243// | '@='
2244// | '/='
2245// | '%='
2246// | '&='
2247// | '|='
2248// | '^='
2249// | '<<='
2250// | '>>='
2251// | '**='
2252// | '//='
2253static AugOperator*
2254augassign_rule(Parser *p)
2255{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002256 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002257 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002258 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002259 return NULL;
2260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002261 AugOperator* _res = NULL;
2262 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002263 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002264 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002265 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002266 return NULL;
2267 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002268 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002269 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002270 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002271 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002272 )
2273 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002274 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002275 _res = _PyPegen_augoperator ( p , Add );
2276 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002277 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002278 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002279 return NULL;
2280 }
2281 goto done;
2282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002283 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002284 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002286 }
2287 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002288 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002289 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002290 return NULL;
2291 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002292 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002293 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002294 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002295 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002296 )
2297 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002298 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002299 _res = _PyPegen_augoperator ( p , Sub );
2300 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002301 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002302 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002303 return NULL;
2304 }
2305 goto done;
2306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002307 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002308 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002310 }
2311 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002314 return NULL;
2315 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002316 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002317 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002318 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002319 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002320 )
2321 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002322 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002323 _res = _PyPegen_augoperator ( p , Mult );
2324 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002325 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002326 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002327 return NULL;
2328 }
2329 goto done;
2330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002331 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002332 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002334 }
2335 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002337 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002338 return NULL;
2339 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002340 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002341 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002342 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002343 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002344 )
2345 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002346 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002347 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2348 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002349 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002351 return NULL;
2352 }
2353 goto done;
2354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002355 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002356 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002358 }
2359 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002362 return NULL;
2363 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002364 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002365 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002366 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002367 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002368 )
2369 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002370 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002371 _res = _PyPegen_augoperator ( p , Div );
2372 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002373 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002375 return NULL;
2376 }
2377 goto done;
2378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002379 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002380 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002382 }
2383 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002386 return NULL;
2387 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002388 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002389 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002390 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002391 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002392 )
2393 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002394 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002395 _res = _PyPegen_augoperator ( p , Mod );
2396 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002397 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002398 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002399 return NULL;
2400 }
2401 goto done;
2402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002403 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002404 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002406 }
2407 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002410 return NULL;
2411 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002412 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002413 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002414 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002415 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002416 )
2417 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002418 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002419 _res = _PyPegen_augoperator ( p , BitAnd );
2420 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002421 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002422 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002423 return NULL;
2424 }
2425 goto done;
2426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002428 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002430 }
2431 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002434 return NULL;
2435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002436 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002437 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002438 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002439 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002440 )
2441 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002442 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002443 _res = _PyPegen_augoperator ( p , BitOr );
2444 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002445 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002447 return NULL;
2448 }
2449 goto done;
2450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002451 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002452 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002454 }
2455 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002457 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002458 return NULL;
2459 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002460 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002461 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002462 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002463 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002464 )
2465 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002466 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002467 _res = _PyPegen_augoperator ( p , BitXor );
2468 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002469 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002470 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002471 return NULL;
2472 }
2473 goto done;
2474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002475 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002476 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002478 }
2479 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002481 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002482 return NULL;
2483 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002484 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002485 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002486 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002487 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002488 )
2489 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002490 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002491 _res = _PyPegen_augoperator ( p , LShift );
2492 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002493 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002494 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002495 return NULL;
2496 }
2497 goto done;
2498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002499 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002500 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002502 }
2503 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002505 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002506 return NULL;
2507 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002508 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002509 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002510 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002511 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002512 )
2513 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002514 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002515 _res = _PyPegen_augoperator ( p , RShift );
2516 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002517 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002519 return NULL;
2520 }
2521 goto done;
2522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002523 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002524 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002526 }
2527 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002530 return NULL;
2531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002532 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002533 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002534 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002535 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002536 )
2537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002538 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002539 _res = _PyPegen_augoperator ( p , Pow );
2540 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002541 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002543 return NULL;
2544 }
2545 goto done;
2546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002547 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002548 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002550 }
2551 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002554 return NULL;
2555 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002556 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002557 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002558 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002559 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002560 )
2561 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002562 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002563 _res = _PyPegen_augoperator ( p , FloorDiv );
2564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002567 return NULL;
2568 }
2569 goto done;
2570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002572 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002575 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002576 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002577 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002578 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002579}
2580
2581// global_stmt: 'global' ','.NAME+
2582static stmt_ty
2583global_stmt_rule(Parser *p)
2584{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002585 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002588 return NULL;
2589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002590 stmt_ty _res = NULL;
2591 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002592 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2593 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002594 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002595 return NULL;
2596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002597 int _start_lineno = p->tokens[_mark]->lineno;
2598 UNUSED(_start_lineno); // Only used by EXTRA macro
2599 int _start_col_offset = p->tokens[_mark]->col_offset;
2600 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002601 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002603 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002604 return NULL;
2605 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002606 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002607 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002608 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002609 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002610 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002611 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002612 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002613 )
2614 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002615 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 +01002616 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2617 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002619 return NULL;
2620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002621 int _end_lineno = _token->end_lineno;
2622 UNUSED(_end_lineno); // Only used by EXTRA macro
2623 int _end_col_offset = _token->end_col_offset;
2624 UNUSED(_end_col_offset); // Only used by EXTRA macro
2625 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2626 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002627 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002628 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002629 return NULL;
2630 }
2631 goto done;
2632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002633 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002634 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002637 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002638 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002639 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002640 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002641}
2642
2643// nonlocal_stmt: 'nonlocal' ','.NAME+
2644static stmt_ty
2645nonlocal_stmt_rule(Parser *p)
2646{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002647 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002648 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002650 return NULL;
2651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002652 stmt_ty _res = NULL;
2653 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002654 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2655 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002657 return NULL;
2658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002659 int _start_lineno = p->tokens[_mark]->lineno;
2660 UNUSED(_start_lineno); // Only used by EXTRA macro
2661 int _start_col_offset = p->tokens[_mark]->col_offset;
2662 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002663 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002665 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002666 return NULL;
2667 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002668 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002669 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002670 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002671 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002672 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002673 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002674 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002675 )
2676 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002677 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 +01002678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2679 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002680 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002681 return NULL;
2682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002683 int _end_lineno = _token->end_lineno;
2684 UNUSED(_end_lineno); // Only used by EXTRA macro
2685 int _end_col_offset = _token->end_col_offset;
2686 UNUSED(_end_col_offset); // Only used by EXTRA macro
2687 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2688 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002689 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002691 return NULL;
2692 }
2693 goto done;
2694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002695 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002696 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002699 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002700 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002701 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002702 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002703}
2704
2705// yield_stmt: yield_expr
2706static stmt_ty
2707yield_stmt_rule(Parser *p)
2708{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002709 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002711 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002712 return NULL;
2713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002714 stmt_ty _res = NULL;
2715 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002716 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002719 return NULL;
2720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002721 int _start_lineno = p->tokens[_mark]->lineno;
2722 UNUSED(_start_lineno); // Only used by EXTRA macro
2723 int _start_col_offset = p->tokens[_mark]->col_offset;
2724 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002725 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002727 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002728 return NULL;
2729 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002730 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002731 expr_ty y;
2732 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002733 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002734 )
2735 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002736 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 +01002737 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2738 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002739 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002740 return NULL;
2741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002742 int _end_lineno = _token->end_lineno;
2743 UNUSED(_end_lineno); // Only used by EXTRA macro
2744 int _end_col_offset = _token->end_col_offset;
2745 UNUSED(_end_col_offset); // Only used by EXTRA macro
2746 _res = _Py_Expr ( y , EXTRA );
2747 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002748 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002750 return NULL;
2751 }
2752 goto done;
2753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002754 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002755 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002758 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002759 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002760 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002761 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002762}
2763
2764// assert_stmt: 'assert' expression [',' expression]
2765static stmt_ty
2766assert_stmt_rule(Parser *p)
2767{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002768 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002770 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002771 return NULL;
2772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002773 stmt_ty _res = NULL;
2774 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002775 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2776 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002777 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002778 return NULL;
2779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002780 int _start_lineno = p->tokens[_mark]->lineno;
2781 UNUSED(_start_lineno); // Only used by EXTRA macro
2782 int _start_col_offset = p->tokens[_mark]->col_offset;
2783 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002784 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002786 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002787 return NULL;
2788 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002789 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 +01002790 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002791 expr_ty a;
2792 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002793 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002794 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002796 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002798 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002799 )
2800 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002801 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 +01002802 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2803 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002805 return NULL;
2806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002807 int _end_lineno = _token->end_lineno;
2808 UNUSED(_end_lineno); // Only used by EXTRA macro
2809 int _end_col_offset = _token->end_col_offset;
2810 UNUSED(_end_col_offset); // Only used by EXTRA macro
2811 _res = _Py_Assert ( a , b , EXTRA );
2812 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002813 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002815 return NULL;
2816 }
2817 goto done;
2818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002819 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002820 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002823 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002824 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002825 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002826 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002827}
2828
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002829// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002830static stmt_ty
2831del_stmt_rule(Parser *p)
2832{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002833 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002836 return NULL;
2837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002838 stmt_ty _res = NULL;
2839 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002840 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2841 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002843 return NULL;
2844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002845 int _start_lineno = p->tokens[_mark]->lineno;
2846 UNUSED(_start_lineno); // Only used by EXTRA macro
2847 int _start_col_offset = p->tokens[_mark]->col_offset;
2848 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002849 { // 'del' del_targets &(';' | NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002851 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002852 return NULL;
2853 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002854 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 +01002855 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002856 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002857 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002858 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002860 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002861 &&
2862 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002863 )
2864 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002865 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 +01002866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2867 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002869 return NULL;
2870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002871 int _end_lineno = _token->end_lineno;
2872 UNUSED(_end_lineno); // Only used by EXTRA macro
2873 int _end_col_offset = _token->end_col_offset;
2874 UNUSED(_end_col_offset); // Only used by EXTRA macro
2875 _res = _Py_Delete ( a , EXTRA );
2876 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002879 return NULL;
2880 }
2881 goto done;
2882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002884 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2886 }
2887 { // invalid_del_stmt
2888 if (p->error_indicator) {
2889 D(p->level--);
2890 return NULL;
2891 }
2892 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2893 void *invalid_del_stmt_var;
2894 if (
2895 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2896 )
2897 {
2898 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2899 _res = invalid_del_stmt_var;
2900 goto done;
2901 }
2902 p->mark = _mark;
2903 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002906 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002907 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002908 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002909 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002910}
2911
2912// import_stmt: import_name | import_from
2913static stmt_ty
2914import_stmt_rule(Parser *p)
2915{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002916 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002917 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002919 return NULL;
2920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002921 stmt_ty _res = NULL;
2922 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002923 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002924 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002925 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002926 return NULL;
2927 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002928 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002929 stmt_ty import_name_var;
2930 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002931 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002932 )
2933 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002934 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 +01002935 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002936 goto done;
2937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002938 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002939 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002941 }
2942 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002944 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002945 return NULL;
2946 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002947 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002948 stmt_ty import_from_var;
2949 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002950 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002951 )
2952 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002953 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 +01002954 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002955 goto done;
2956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002957 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002958 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002961 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002962 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002963 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002964 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002965}
2966
2967// import_name: 'import' dotted_as_names
2968static stmt_ty
2969import_name_rule(Parser *p)
2970{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002971 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002973 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002974 return NULL;
2975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002976 stmt_ty _res = NULL;
2977 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2979 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002981 return NULL;
2982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002983 int _start_lineno = p->tokens[_mark]->lineno;
2984 UNUSED(_start_lineno); // Only used by EXTRA macro
2985 int _start_col_offset = p->tokens[_mark]->col_offset;
2986 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002987 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002989 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002990 return NULL;
2991 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002992 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 +01002993 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002994 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002995 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002996 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002998 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002999 )
3000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003001 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 +01003002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3003 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003005 return NULL;
3006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003007 int _end_lineno = _token->end_lineno;
3008 UNUSED(_end_lineno); // Only used by EXTRA macro
3009 int _end_col_offset = _token->end_col_offset;
3010 UNUSED(_end_col_offset); // Only used by EXTRA macro
3011 _res = _Py_Import ( a , EXTRA );
3012 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003013 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003015 return NULL;
3016 }
3017 goto done;
3018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003019 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003020 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003023 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003024 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003025 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003026 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003027}
3028
3029// import_from:
3030// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3031// | 'from' (('.' | '...'))+ 'import' import_from_targets
3032static stmt_ty
3033import_from_rule(Parser *p)
3034{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003035 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003038 return NULL;
3039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003040 stmt_ty _res = NULL;
3041 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003042 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3043 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003044 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003045 return NULL;
3046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003047 int _start_lineno = p->tokens[_mark]->lineno;
3048 UNUSED(_start_lineno); // Only used by EXTRA macro
3049 int _start_col_offset = p->tokens[_mark]->col_offset;
3050 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003051 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003053 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003054 return NULL;
3055 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003056 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 +01003057 Token * _keyword;
3058 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003059 asdl_seq * a;
3060 expr_ty b;
3061 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003062 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003063 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003064 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003065 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003066 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003067 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003068 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003069 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003071 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 )
3073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003074 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 +01003075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3076 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003077 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003078 return NULL;
3079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003080 int _end_lineno = _token->end_lineno;
3081 UNUSED(_end_lineno); // Only used by EXTRA macro
3082 int _end_col_offset = _token->end_col_offset;
3083 UNUSED(_end_col_offset); // Only used by EXTRA macro
3084 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3085 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003086 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003088 return NULL;
3089 }
3090 goto done;
3091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003093 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003095 }
3096 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003099 return NULL;
3100 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003101 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 +01003102 Token * _keyword;
3103 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003104 asdl_seq * a;
3105 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003106 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003107 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003108 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003109 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003110 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003111 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003112 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003113 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003114 )
3115 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003116 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 +01003117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3118 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003119 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003120 return NULL;
3121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003122 int _end_lineno = _token->end_lineno;
3123 UNUSED(_end_lineno); // Only used by EXTRA macro
3124 int _end_col_offset = _token->end_col_offset;
3125 UNUSED(_end_col_offset); // Only used by EXTRA macro
3126 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3127 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003128 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003129 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003130 return NULL;
3131 }
3132 goto done;
3133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003135 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003138 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003139 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003140 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003141 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003142}
3143
Pablo Galindo275d7e12020-05-21 22:04:54 +01003144// import_from_targets:
3145// | '(' import_from_as_names ','? ')'
3146// | import_from_as_names !','
3147// | '*'
3148// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003149static asdl_seq*
3150import_from_targets_rule(Parser *p)
3151{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003152 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003153 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003155 return NULL;
3156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003157 asdl_seq* _res = NULL;
3158 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003159 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003160 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003161 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003162 return NULL;
3163 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003164 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 +01003165 Token * _literal;
3166 Token * _literal_1;
3167 void *_opt_var;
3168 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003169 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003170 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003171 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003172 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003173 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003174 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003175 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003176 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003177 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 )
3179 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003180 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 +01003181 _res = a;
3182 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003183 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003185 return NULL;
3186 }
3187 goto done;
3188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003189 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003190 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003192 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003193 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003195 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003196 return NULL;
3197 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003198 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 +01003199 asdl_seq* import_from_as_names_var;
3200 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003201 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003202 &&
3203 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003204 )
3205 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003206 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 +01003207 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003208 goto done;
3209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003211 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003213 }
3214 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003217 return NULL;
3218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003219 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003220 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003221 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003222 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003223 )
3224 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003225 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003226 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3227 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003228 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003229 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003230 return NULL;
3231 }
3232 goto done;
3233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003235 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003237 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003238 { // invalid_import_from_targets
3239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003240 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003241 return NULL;
3242 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003243 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 +01003244 void *invalid_import_from_targets_var;
3245 if (
3246 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3247 )
3248 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003249 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 +01003250 _res = invalid_import_from_targets_var;
3251 goto done;
3252 }
3253 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003254 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003257 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003258 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003259 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003260 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003261}
3262
3263// import_from_as_names: ','.import_from_as_name+
3264static asdl_seq*
3265import_from_as_names_rule(Parser *p)
3266{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003267 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003268 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003270 return NULL;
3271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003272 asdl_seq* _res = NULL;
3273 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003274 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003276 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003277 return NULL;
3278 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003279 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 +01003280 asdl_seq * a;
3281 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003282 (a = _gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003283 )
3284 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003285 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 +01003286 _res = a;
3287 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003288 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003289 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003290 return NULL;
3291 }
3292 goto done;
3293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003294 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003295 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003298 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003299 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003300 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003301 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003302}
3303
3304// import_from_as_name: NAME ['as' NAME]
3305static alias_ty
3306import_from_as_name_rule(Parser *p)
3307{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003308 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003310 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003311 return NULL;
3312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003313 alias_ty _res = NULL;
3314 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003315 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003317 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003318 return NULL;
3319 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003320 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 +01003321 expr_ty a;
3322 void *b;
3323 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003324 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003325 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003326 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003327 )
3328 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003329 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 +01003330 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3331 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003332 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003333 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003334 return NULL;
3335 }
3336 goto done;
3337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003338 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003339 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003342 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003343 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003344 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003345 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003346}
3347
3348// dotted_as_names: ','.dotted_as_name+
3349static asdl_seq*
3350dotted_as_names_rule(Parser *p)
3351{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003352 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003353 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003354 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003355 return NULL;
3356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003357 asdl_seq* _res = NULL;
3358 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003359 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003362 return NULL;
3363 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003364 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 +01003365 asdl_seq * a;
3366 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003367 (a = _gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003368 )
3369 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003370 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 +01003371 _res = a;
3372 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003373 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003375 return NULL;
3376 }
3377 goto done;
3378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003379 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003380 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003383 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003384 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003385 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003386 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003387}
3388
3389// dotted_as_name: dotted_name ['as' NAME]
3390static alias_ty
3391dotted_as_name_rule(Parser *p)
3392{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003393 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003396 return NULL;
3397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003398 alias_ty _res = NULL;
3399 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003400 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003402 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003403 return NULL;
3404 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003405 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 +01003406 expr_ty a;
3407 void *b;
3408 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003409 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003410 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003411 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003412 )
3413 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003414 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 +01003415 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3416 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003417 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003418 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003419 return NULL;
3420 }
3421 goto done;
3422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003423 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003424 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003427 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003428 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003429 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003430 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003431}
3432
3433// Left-recursive
3434// dotted_name: dotted_name '.' NAME | NAME
3435static expr_ty dotted_name_raw(Parser *);
3436static expr_ty
3437dotted_name_rule(Parser *p)
3438{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003439 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003440 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003441 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3442 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003443 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003445 int _mark = p->mark;
3446 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003447 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003448 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003449 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003450 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003451 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003453 p->mark = _mark;
3454 void *_raw = dotted_name_raw(p);
3455 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003456 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003457 _resmark = p->mark;
3458 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003460 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003461 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003462 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003463}
3464static expr_ty
3465dotted_name_raw(Parser *p)
3466{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003467 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003470 return NULL;
3471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003472 expr_ty _res = NULL;
3473 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003474 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003476 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003477 return NULL;
3478 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003479 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 +01003480 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003481 expr_ty a;
3482 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003483 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003484 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003485 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003486 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003487 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003488 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003489 )
3490 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003491 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 +01003492 _res = _PyPegen_join_names_with_dot ( p , a , b );
3493 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003494 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003496 return NULL;
3497 }
3498 goto done;
3499 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003500 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003501 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003503 }
3504 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003506 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003507 return NULL;
3508 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003509 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003510 expr_ty name_var;
3511 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003512 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003513 )
3514 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003515 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003516 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003517 goto done;
3518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003519 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003520 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003523 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003524 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003525 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003526 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003527}
3528
3529// if_stmt:
3530// | 'if' named_expression ':' block elif_stmt
3531// | 'if' named_expression ':' block else_block?
3532static stmt_ty
3533if_stmt_rule(Parser *p)
3534{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003535 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003537 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003538 return NULL;
3539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003540 stmt_ty _res = NULL;
3541 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003542 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003545 return NULL;
3546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003547 int _start_lineno = p->tokens[_mark]->lineno;
3548 UNUSED(_start_lineno); // Only used by EXTRA macro
3549 int _start_col_offset = p->tokens[_mark]->col_offset;
3550 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003551 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003554 return NULL;
3555 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003556 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 +01003557 Token * _keyword;
3558 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003559 expr_ty a;
3560 asdl_seq* b;
3561 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003562 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003563 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003564 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003565 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003566 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003567 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003568 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003569 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003570 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003571 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 )
3573 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003574 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 +01003575 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3576 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003577 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003578 return NULL;
3579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003580 int _end_lineno = _token->end_lineno;
3581 UNUSED(_end_lineno); // Only used by EXTRA macro
3582 int _end_col_offset = _token->end_col_offset;
3583 UNUSED(_end_col_offset); // Only used by EXTRA macro
3584 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3585 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003586 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003588 return NULL;
3589 }
3590 goto done;
3591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003593 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003595 }
3596 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003599 return NULL;
3600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003601 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 +01003602 Token * _keyword;
3603 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003604 expr_ty a;
3605 asdl_seq* b;
3606 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003607 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003608 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003609 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003610 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003611 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003612 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003614 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003616 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 )
3618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003619 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 +01003620 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3621 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003623 return NULL;
3624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003625 int _end_lineno = _token->end_lineno;
3626 UNUSED(_end_lineno); // Only used by EXTRA macro
3627 int _end_col_offset = _token->end_col_offset;
3628 UNUSED(_end_col_offset); // Only used by EXTRA macro
3629 _res = _Py_If ( a , b , c , EXTRA );
3630 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003633 return NULL;
3634 }
3635 goto done;
3636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003637 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003638 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003641 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003642 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003643 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003644 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003645}
3646
3647// elif_stmt:
3648// | 'elif' named_expression ':' block elif_stmt
3649// | 'elif' named_expression ':' block else_block?
3650static stmt_ty
3651elif_stmt_rule(Parser *p)
3652{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003653 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003656 return NULL;
3657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003658 stmt_ty _res = NULL;
3659 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003660 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3661 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003663 return NULL;
3664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003665 int _start_lineno = p->tokens[_mark]->lineno;
3666 UNUSED(_start_lineno); // Only used by EXTRA macro
3667 int _start_col_offset = p->tokens[_mark]->col_offset;
3668 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003669 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003672 return NULL;
3673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003674 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 +01003675 Token * _keyword;
3676 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003677 expr_ty a;
3678 asdl_seq* b;
3679 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003680 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003681 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003682 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003683 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003684 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003685 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003686 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003687 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003689 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 )
3691 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003692 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 +01003693 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3694 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003696 return NULL;
3697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003698 int _end_lineno = _token->end_lineno;
3699 UNUSED(_end_lineno); // Only used by EXTRA macro
3700 int _end_col_offset = _token->end_col_offset;
3701 UNUSED(_end_col_offset); // Only used by EXTRA macro
3702 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3703 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003704 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003706 return NULL;
3707 }
3708 goto done;
3709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003710 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003711 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003713 }
3714 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003715 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003716 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003717 return NULL;
3718 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003719 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 +01003720 Token * _keyword;
3721 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003722 expr_ty a;
3723 asdl_seq* b;
3724 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003725 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003726 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003727 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003728 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003729 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003730 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003731 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003732 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003734 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 )
3736 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003737 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 +01003738 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3739 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003741 return NULL;
3742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003743 int _end_lineno = _token->end_lineno;
3744 UNUSED(_end_lineno); // Only used by EXTRA macro
3745 int _end_col_offset = _token->end_col_offset;
3746 UNUSED(_end_col_offset); // Only used by EXTRA macro
3747 _res = _Py_If ( a , b , c , EXTRA );
3748 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003749 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003751 return NULL;
3752 }
3753 goto done;
3754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003755 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003756 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003759 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003760 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003761 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003762 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003763}
3764
3765// else_block: 'else' ':' block
3766static asdl_seq*
3767else_block_rule(Parser *p)
3768{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003769 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003770 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003771 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003772 return NULL;
3773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003774 asdl_seq* _res = NULL;
3775 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003776 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003779 return NULL;
3780 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003781 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003782 Token * _keyword;
3783 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003784 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003785 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003786 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003787 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003788 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003789 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003790 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003791 )
3792 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003793 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 +01003794 _res = b;
3795 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003796 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003797 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003798 return NULL;
3799 }
3800 goto done;
3801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003802 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003803 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003806 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003807 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003808 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003809 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003810}
3811
3812// while_stmt: 'while' named_expression ':' block else_block?
3813static stmt_ty
3814while_stmt_rule(Parser *p)
3815{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003816 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003817 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003819 return NULL;
3820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003821 stmt_ty _res = NULL;
3822 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003823 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3824 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003826 return NULL;
3827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003828 int _start_lineno = p->tokens[_mark]->lineno;
3829 UNUSED(_start_lineno); // Only used by EXTRA macro
3830 int _start_col_offset = p->tokens[_mark]->col_offset;
3831 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003832 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003834 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003835 return NULL;
3836 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003837 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 +01003838 Token * _keyword;
3839 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003840 expr_ty a;
3841 asdl_seq* b;
3842 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003843 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003844 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003845 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003846 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003847 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003848 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003849 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003850 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003852 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 )
3854 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003855 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 +01003856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3857 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003858 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003859 return NULL;
3860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003861 int _end_lineno = _token->end_lineno;
3862 UNUSED(_end_lineno); // Only used by EXTRA macro
3863 int _end_col_offset = _token->end_col_offset;
3864 UNUSED(_end_col_offset); // Only used by EXTRA macro
3865 _res = _Py_While ( a , b , c , EXTRA );
3866 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003867 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003869 return NULL;
3870 }
3871 goto done;
3872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003873 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003874 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003877 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003878 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003880 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003881}
3882
Guido van Rossumc001c092020-04-30 12:12:19 -07003883// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003884// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3885// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3886// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003887static stmt_ty
3888for_stmt_rule(Parser *p)
3889{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003890 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003893 return NULL;
3894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003895 stmt_ty _res = NULL;
3896 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003897 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3898 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003900 return NULL;
3901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003902 int _start_lineno = p->tokens[_mark]->lineno;
3903 UNUSED(_start_lineno); // Only used by EXTRA macro
3904 int _start_col_offset = p->tokens[_mark]->col_offset;
3905 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003906 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003908 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003909 return NULL;
3910 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003911 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?"));
3912 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003913 Token * _keyword;
3914 Token * _keyword_1;
3915 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003916 asdl_seq* b;
3917 void *el;
3918 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003919 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003920 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003921 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003922 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003923 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003924 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003925 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003926 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003927 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003928 (_cut_var = 1)
3929 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003930 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003931 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003932 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003933 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003934 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003936 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003938 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003939 )
3940 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003941 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 +01003942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3943 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003944 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003945 return NULL;
3946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003947 int _end_lineno = _token->end_lineno;
3948 UNUSED(_end_lineno); // Only used by EXTRA macro
3949 int _end_col_offset = _token->end_col_offset;
3950 UNUSED(_end_col_offset); // Only used by EXTRA macro
3951 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3952 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003953 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003954 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003955 return NULL;
3956 }
3957 goto done;
3958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003960 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3962 if (_cut_var) {
3963 D(p->level--);
3964 return NULL;
3965 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003966 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003967 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003969 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003970 return NULL;
3971 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003972 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?"));
3973 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003974 Token * _keyword;
3975 Token * _keyword_1;
3976 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003977 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003978 asdl_seq* b;
3979 void *el;
3980 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003981 expr_ty t;
3982 void *tc;
3983 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003984 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003985 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003986 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003987 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003988 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003989 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003990 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003991 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003992 (_cut_var = 1)
3993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003994 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003995 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003996 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003998 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07003999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004000 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004002 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004003 )
4004 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004005 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 +01004006 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4007 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004009 return NULL;
4010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004011 int _end_lineno = _token->end_lineno;
4012 UNUSED(_end_lineno); // Only used by EXTRA macro
4013 int _end_col_offset = _token->end_col_offset;
4014 UNUSED(_end_col_offset); // Only used by EXTRA macro
4015 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4016 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004017 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004018 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004019 return NULL;
4020 }
4021 goto done;
4022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004023 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004024 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4026 if (_cut_var) {
4027 D(p->level--);
4028 return NULL;
4029 }
4030 }
4031 { // invalid_for_target
4032 if (p->error_indicator) {
4033 D(p->level--);
4034 return NULL;
4035 }
4036 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4037 void *invalid_for_target_var;
4038 if (
4039 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4040 )
4041 {
4042 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4043 _res = invalid_for_target_var;
4044 goto done;
4045 }
4046 p->mark = _mark;
4047 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004050 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004051 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004052 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004053 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004054}
4055
4056// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004057// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004058// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004059// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004060// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004061static stmt_ty
4062with_stmt_rule(Parser *p)
4063{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004064 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004067 return NULL;
4068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004069 stmt_ty _res = NULL;
4070 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004071 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4072 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004074 return NULL;
4075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004076 int _start_lineno = p->tokens[_mark]->lineno;
4077 UNUSED(_start_lineno); // Only used by EXTRA macro
4078 int _start_col_offset = p->tokens[_mark]->col_offset;
4079 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004080 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004082 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004083 return NULL;
4084 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004085 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 +01004086 Token * _keyword;
4087 Token * _literal;
4088 Token * _literal_1;
4089 Token * _literal_2;
4090 void *_opt_var;
4091 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004092 asdl_seq * a;
4093 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004094 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004095 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004096 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004097 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004098 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004099 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004100 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004101 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004102 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004103 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004104 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004105 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004106 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004107 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004108 )
4109 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004110 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 +01004111 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4112 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004114 return NULL;
4115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004116 int _end_lineno = _token->end_lineno;
4117 UNUSED(_end_lineno); // Only used by EXTRA macro
4118 int _end_col_offset = _token->end_col_offset;
4119 UNUSED(_end_col_offset); // Only used by EXTRA macro
4120 _res = _Py_With ( a , b , NULL , EXTRA );
4121 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004122 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004124 return NULL;
4125 }
4126 goto done;
4127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004128 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004129 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004131 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004132 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004135 return NULL;
4136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004137 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 +01004138 Token * _keyword;
4139 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004140 asdl_seq * a;
4141 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004142 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004143 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004144 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004145 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004146 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004147 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004148 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004149 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004150 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004152 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004153 )
4154 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004155 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 +01004156 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4157 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004159 return NULL;
4160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004161 int _end_lineno = _token->end_lineno;
4162 UNUSED(_end_lineno); // Only used by EXTRA macro
4163 int _end_col_offset = _token->end_col_offset;
4164 UNUSED(_end_col_offset); // Only used by EXTRA macro
4165 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4166 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004167 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004168 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004169 return NULL;
4170 }
4171 goto done;
4172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004173 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004174 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004176 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004177 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004178 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004179 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004180 return NULL;
4181 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004182 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 +01004183 Token * _keyword;
4184 Token * _literal;
4185 Token * _literal_1;
4186 Token * _literal_2;
4187 void *_opt_var;
4188 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004189 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004190 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004191 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004192 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004193 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004194 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004195 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004196 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004197 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004198 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004199 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004200 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004201 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004202 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004203 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004204 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004205 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004206 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004207 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004208 )
4209 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004210 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 +01004211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4212 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004213 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004214 return NULL;
4215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004216 int _end_lineno = _token->end_lineno;
4217 UNUSED(_end_lineno); // Only used by EXTRA macro
4218 int _end_col_offset = _token->end_col_offset;
4219 UNUSED(_end_col_offset); // Only used by EXTRA macro
4220 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4221 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004222 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004223 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004224 return NULL;
4225 }
4226 goto done;
4227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004228 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004229 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004231 }
4232 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004233 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004234 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004235 return NULL;
4236 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004237 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 +01004238 Token * _keyword;
4239 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004240 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004241 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004242 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004243 void *tc;
4244 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004245 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004246 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004247 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004248 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004249 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004250 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004251 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004252 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004253 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004254 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004255 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 )
4257 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004258 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 +01004259 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4260 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004261 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004262 return NULL;
4263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004264 int _end_lineno = _token->end_lineno;
4265 UNUSED(_end_lineno); // Only used by EXTRA macro
4266 int _end_col_offset = _token->end_col_offset;
4267 UNUSED(_end_col_offset); // Only used by EXTRA macro
4268 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4269 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004270 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004272 return NULL;
4273 }
4274 goto done;
4275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004277 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004280 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004281 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004282 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004283 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004284}
4285
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004286// with_item: expression 'as' target &(',' | ')' | ':') | invalid_with_item | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004287static withitem_ty
4288with_item_rule(Parser *p)
4289{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004290 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004293 return NULL;
4294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004295 withitem_ty _res = NULL;
4296 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004297 { // expression 'as' target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004299 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004300 return NULL;
4301 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004302 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4303 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004304 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004305 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004307 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004308 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004309 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4310 &&
4311 (t = target_rule(p)) // target
4312 &&
4313 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004314 )
4315 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004316 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4317 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004318 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004319 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004321 return NULL;
4322 }
4323 goto done;
4324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004325 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004326 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4328 }
4329 { // invalid_with_item
4330 if (p->error_indicator) {
4331 D(p->level--);
4332 return NULL;
4333 }
4334 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4335 void *invalid_with_item_var;
4336 if (
4337 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4338 )
4339 {
4340 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4341 _res = invalid_with_item_var;
4342 goto done;
4343 }
4344 p->mark = _mark;
4345 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4347 }
4348 { // expression
4349 if (p->error_indicator) {
4350 D(p->level--);
4351 return NULL;
4352 }
4353 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4354 expr_ty e;
4355 if (
4356 (e = expression_rule(p)) // expression
4357 )
4358 {
4359 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4360 _res = _Py_withitem ( e , NULL , p -> arena );
4361 if (_res == NULL && PyErr_Occurred()) {
4362 p->error_indicator = 1;
4363 D(p->level--);
4364 return NULL;
4365 }
4366 goto done;
4367 }
4368 p->mark = _mark;
4369 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004372 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004373 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004374 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004375 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004376}
4377
4378// try_stmt:
4379// | 'try' ':' block finally_block
4380// | 'try' ':' block except_block+ else_block? finally_block?
4381static stmt_ty
4382try_stmt_rule(Parser *p)
4383{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004384 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004386 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004387 return NULL;
4388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004389 stmt_ty _res = NULL;
4390 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004391 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4392 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
4397 UNUSED(_start_lineno); // Only used by EXTRA macro
4398 int _start_col_offset = p->tokens[_mark]->col_offset;
4399 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004400 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004402 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004403 return NULL;
4404 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004405 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 +01004406 Token * _keyword;
4407 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004408 asdl_seq* b;
4409 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004410 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004411 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004412 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004413 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004414 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004415 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004416 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004417 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004418 )
4419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004420 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 +01004421 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4422 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004423 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004424 return NULL;
4425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004426 int _end_lineno = _token->end_lineno;
4427 UNUSED(_end_lineno); // Only used by EXTRA macro
4428 int _end_col_offset = _token->end_col_offset;
4429 UNUSED(_end_col_offset); // Only used by EXTRA macro
4430 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4431 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004432 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004434 return NULL;
4435 }
4436 goto done;
4437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004438 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004439 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004441 }
4442 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004443 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004444 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004445 return NULL;
4446 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004447 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 +01004448 Token * _keyword;
4449 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004450 asdl_seq* b;
4451 void *el;
4452 asdl_seq * ex;
4453 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004454 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004455 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004456 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004457 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004458 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004459 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004460 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004461 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004462 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004463 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004465 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004466 )
4467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004468 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 +01004469 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4470 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004472 return NULL;
4473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004474 int _end_lineno = _token->end_lineno;
4475 UNUSED(_end_lineno); // Only used by EXTRA macro
4476 int _end_col_offset = _token->end_col_offset;
4477 UNUSED(_end_col_offset); // Only used by EXTRA macro
4478 _res = _Py_Try ( b , ex , el , f , EXTRA );
4479 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004480 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004482 return NULL;
4483 }
4484 goto done;
4485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004486 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004487 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004490 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004491 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004492 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004493 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004494}
4495
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004496// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004497static excepthandler_ty
4498except_block_rule(Parser *p)
4499{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004500 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004501 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004503 return NULL;
4504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004505 excepthandler_ty _res = NULL;
4506 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004507 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4508 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
4513 UNUSED(_start_lineno); // Only used by EXTRA macro
4514 int _start_col_offset = p->tokens[_mark]->col_offset;
4515 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004516 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004518 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004519 return NULL;
4520 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004521 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 +01004522 Token * _keyword;
4523 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004524 asdl_seq* b;
4525 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004526 void *t;
4527 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004528 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004530 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004531 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004532 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004533 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004534 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004536 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004537 )
4538 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004539 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 +01004540 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4541 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004543 return NULL;
4544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004545 int _end_lineno = _token->end_lineno;
4546 UNUSED(_end_lineno); // Only used by EXTRA macro
4547 int _end_col_offset = _token->end_col_offset;
4548 UNUSED(_end_col_offset); // Only used by EXTRA macro
4549 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4550 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004551 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004553 return NULL;
4554 }
4555 goto done;
4556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004557 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004558 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004560 }
4561 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004564 return NULL;
4565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004566 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004567 Token * _keyword;
4568 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004569 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004570 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004571 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004572 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004573 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004575 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004576 )
4577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004578 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 +01004579 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4580 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004581 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004582 return NULL;
4583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004584 int _end_lineno = _token->end_lineno;
4585 UNUSED(_end_lineno); // Only used by EXTRA macro
4586 int _end_col_offset = _token->end_col_offset;
4587 UNUSED(_end_col_offset); // Only used by EXTRA macro
4588 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4589 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004590 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004592 return NULL;
4593 }
4594 goto done;
4595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004597 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004600 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004601 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004602 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004603 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004604}
4605
4606// finally_block: 'finally' ':' block
4607static asdl_seq*
4608finally_block_rule(Parser *p)
4609{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004610 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004611 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004612 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004613 return NULL;
4614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004615 asdl_seq* _res = NULL;
4616 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004617 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004620 return NULL;
4621 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004622 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004623 Token * _keyword;
4624 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004625 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004626 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004627 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004629 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004630 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004631 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 )
4633 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004634 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 +01004635 _res = a;
4636 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004637 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004639 return NULL;
4640 }
4641 goto done;
4642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004643 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004644 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004647 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004648 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004649 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004650 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004651}
4652
4653// return_stmt: 'return' star_expressions?
4654static stmt_ty
4655return_stmt_rule(Parser *p)
4656{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004657 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004659 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004660 return NULL;
4661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004662 stmt_ty _res = NULL;
4663 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004664 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4665 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
4670 UNUSED(_start_lineno); // Only used by EXTRA macro
4671 int _start_col_offset = p->tokens[_mark]->col_offset;
4672 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004673 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004676 return NULL;
4677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004678 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 +01004679 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004680 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004681 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004682 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004683 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004684 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004685 )
4686 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004687 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 +01004688 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4689 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004691 return NULL;
4692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004693 int _end_lineno = _token->end_lineno;
4694 UNUSED(_end_lineno); // Only used by EXTRA macro
4695 int _end_col_offset = _token->end_col_offset;
4696 UNUSED(_end_col_offset); // Only used by EXTRA macro
4697 _res = _Py_Return ( a , EXTRA );
4698 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004699 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004701 return NULL;
4702 }
4703 goto done;
4704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004705 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004706 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004709 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004710 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004711 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004712 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004713}
4714
4715// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4716static stmt_ty
4717raise_stmt_rule(Parser *p)
4718{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004719 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004721 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004722 return NULL;
4723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004724 stmt_ty _res = NULL;
4725 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004726 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4727 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
4732 UNUSED(_start_lineno); // Only used by EXTRA macro
4733 int _start_col_offset = p->tokens[_mark]->col_offset;
4734 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004735 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004737 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004738 return NULL;
4739 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004740 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 +01004741 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004742 expr_ty a;
4743 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004744 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004745 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004746 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004747 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004748 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004749 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004750 )
4751 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004752 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 +01004753 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4754 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004756 return NULL;
4757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004758 int _end_lineno = _token->end_lineno;
4759 UNUSED(_end_lineno); // Only used by EXTRA macro
4760 int _end_col_offset = _token->end_col_offset;
4761 UNUSED(_end_col_offset); // Only used by EXTRA macro
4762 _res = _Py_Raise ( a , b , EXTRA );
4763 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004764 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004766 return NULL;
4767 }
4768 goto done;
4769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004770 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004771 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004773 }
4774 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004776 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004777 return NULL;
4778 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004779 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004780 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004781 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004782 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004783 )
4784 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004785 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004786 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4787 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004788 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004789 return NULL;
4790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004791 int _end_lineno = _token->end_lineno;
4792 UNUSED(_end_lineno); // Only used by EXTRA macro
4793 int _end_col_offset = _token->end_col_offset;
4794 UNUSED(_end_col_offset); // Only used by EXTRA macro
4795 _res = _Py_Raise ( NULL , NULL , EXTRA );
4796 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004797 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004798 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004799 return NULL;
4800 }
4801 goto done;
4802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004803 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004804 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004807 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004808 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004809 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004810 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004811}
4812
4813// function_def: decorators function_def_raw | function_def_raw
4814static stmt_ty
4815function_def_rule(Parser *p)
4816{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004817 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004818 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004820 return NULL;
4821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004822 stmt_ty _res = NULL;
4823 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004824 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004825 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004826 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004827 return NULL;
4828 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004829 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 +01004830 asdl_seq* d;
4831 stmt_ty f;
4832 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004833 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004834 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004835 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004836 )
4837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004838 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 +01004839 _res = _PyPegen_function_def_decorators ( p , d , f );
4840 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004841 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004843 return NULL;
4844 }
4845 goto done;
4846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004847 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004848 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004850 }
4851 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004853 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004854 return NULL;
4855 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004856 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 +01004857 stmt_ty function_def_raw_var;
4858 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004859 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004860 )
4861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004862 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 +01004863 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004864 goto done;
4865 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004866 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004867 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004870 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004871 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004872 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004873 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004874}
4875
Guido van Rossumc001c092020-04-30 12:12:19 -07004876// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004877// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4878// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004879static stmt_ty
4880function_def_raw_rule(Parser *p)
4881{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004882 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004885 return NULL;
4886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004887 stmt_ty _res = NULL;
4888 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004889 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4890 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
4895 UNUSED(_start_lineno); // Only used by EXTRA macro
4896 int _start_col_offset = p->tokens[_mark]->col_offset;
4897 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004898 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004900 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004901 return NULL;
4902 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004903 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 +01004904 Token * _keyword;
4905 Token * _literal;
4906 Token * _literal_1;
4907 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004908 void *a;
4909 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004910 expr_ty n;
4911 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004912 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004913 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004914 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004915 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004916 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004917 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004918 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004919 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004920 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004921 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004922 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004923 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004924 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004925 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004926 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004927 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004928 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004929 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004930 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004931 )
4932 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004933 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 +01004934 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4935 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004936 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004937 return NULL;
4938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004939 int _end_lineno = _token->end_lineno;
4940 UNUSED(_end_lineno); // Only used by EXTRA macro
4941 int _end_col_offset = _token->end_col_offset;
4942 UNUSED(_end_col_offset); // Only used by EXTRA macro
4943 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4944 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004945 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004946 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004947 return NULL;
4948 }
4949 goto done;
4950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004951 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004952 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004954 }
4955 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004957 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004958 return NULL;
4959 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004960 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 +01004961 Token * _keyword;
4962 Token * _literal;
4963 Token * _literal_1;
4964 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004965 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004966 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004967 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004968 expr_ty n;
4969 void *params;
4970 void *tc;
4971 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004972 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004973 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004974 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004975 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004976 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004978 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004979 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004980 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004981 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004982 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004983 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004984 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004985 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004986 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004987 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004988 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004989 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004990 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004991 )
4992 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004993 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 +01004994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4995 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004996 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004997 return NULL;
4998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004999 int _end_lineno = _token->end_lineno;
5000 UNUSED(_end_lineno); // Only used by EXTRA macro
5001 int _end_col_offset = _token->end_col_offset;
5002 UNUSED(_end_col_offset); // Only used by EXTRA macro
5003 _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 ) );
5004 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005005 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005006 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005007 return NULL;
5008 }
5009 goto done;
5010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005011 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005012 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005015 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005016 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005017 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005018 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005019}
5020
Guido van Rossumc001c092020-04-30 12:12:19 -07005021// func_type_comment:
5022// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5023// | invalid_double_type_comments
5024// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005025static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005026func_type_comment_rule(Parser *p)
5027{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005028 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005030 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005031 return NULL;
5032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005033 Token* _res = NULL;
5034 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005035 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005037 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005038 return NULL;
5039 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005040 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 +01005041 Token * newline_var;
5042 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005043 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005044 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005045 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005046 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005047 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005048 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005049 )
5050 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005051 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 +01005052 _res = t;
5053 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005054 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005055 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005056 return NULL;
5057 }
5058 goto done;
5059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005060 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005061 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005063 }
5064 { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005067 return NULL;
5068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005069 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 -07005070 void *invalid_double_type_comments_var;
5071 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005072 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005073 )
5074 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005075 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 +01005076 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005077 goto done;
5078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005079 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005080 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005082 }
5083 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005086 return NULL;
5087 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005088 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 +01005089 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005090 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005091 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005092 )
5093 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005094 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 +01005095 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005096 goto done;
5097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005098 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005099 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005102 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005103 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005104 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005105 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005106}
5107
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005108// params: invalid_parameters | parameters
5109static arguments_ty
5110params_rule(Parser *p)
5111{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005112 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005115 return NULL;
5116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005117 arguments_ty _res = NULL;
5118 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005119 { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005120 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005121 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005122 return NULL;
5123 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005124 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005125 void *invalid_parameters_var;
5126 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005127 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005128 )
5129 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005130 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005131 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005132 goto done;
5133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005135 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005137 }
5138 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005139 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005140 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005141 return NULL;
5142 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005143 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005144 arguments_ty parameters_var;
5145 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005146 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005147 )
5148 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005149 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005150 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005151 goto done;
5152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005153 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005154 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005157 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005158 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005159 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005160 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005161}
5162
5163// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005164// | slash_no_default param_no_default* param_with_default* star_etc?
5165// | slash_with_default param_with_default* star_etc?
5166// | param_no_default+ param_with_default* star_etc?
5167// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005168// | star_etc
5169static arguments_ty
5170parameters_rule(Parser *p)
5171{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005172 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005173 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005175 return NULL;
5176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005177 arguments_ty _res = NULL;
5178 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005179 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005182 return NULL;
5183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005184 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 +01005185 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005186 asdl_seq * b;
5187 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005188 void *d;
5189 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005190 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005191 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005192 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005193 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005194 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005195 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005196 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005197 )
5198 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005199 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 +01005200 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 return NULL;
5205 }
5206 goto done;
5207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005209 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5210 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 +01005211 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005212 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005214 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005215 return NULL;
5216 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005217 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 +01005218 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005219 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005220 void *c;
5221 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005222 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005223 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005224 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005225 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005226 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005227 )
5228 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005229 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 +01005230 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5231 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005232 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005234 return NULL;
5235 }
5236 goto done;
5237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005238 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005239 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005241 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005242 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005245 return NULL;
5246 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005247 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 -07005248 asdl_seq * a;
5249 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005250 void *c;
5251 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005252 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005253 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005254 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005255 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005256 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005257 )
5258 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005259 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 +01005260 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5261 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005262 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005263 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005264 return NULL;
5265 }
5266 goto done;
5267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005268 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005269 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005271 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005272 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005273 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005274 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005275 return NULL;
5276 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005277 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 -07005278 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005279 void *b;
5280 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005281 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005282 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005283 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005284 )
5285 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005286 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 +01005287 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5288 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005289 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005291 return NULL;
5292 }
5293 goto done;
5294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005295 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005296 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005298 }
5299 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005301 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005302 return NULL;
5303 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005304 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005305 StarEtc* a;
5306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005307 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005308 )
5309 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005310 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005311 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5312 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005313 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005315 return NULL;
5316 }
5317 goto done;
5318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005319 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005320 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005323 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005324 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005325 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005326 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005327}
5328
Guido van Rossumc001c092020-04-30 12:12:19 -07005329// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005330static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005331slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005332{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005333 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005336 return NULL;
5337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005338 asdl_seq* _res = NULL;
5339 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005340 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005342 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005343 return NULL;
5344 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005345 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 +01005346 Token * _literal;
5347 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005348 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005349 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005350 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005351 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005352 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005353 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005354 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005355 )
5356 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005357 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 +01005358 _res = a;
5359 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005360 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005361 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005362 return NULL;
5363 }
5364 goto done;
5365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005366 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005367 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005369 }
5370 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005371 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005372 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005373 return NULL;
5374 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005375 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 +01005376 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005377 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005378 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005379 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005380 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005381 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005382 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005383 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005384 )
5385 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005386 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 +01005387 _res = a;
5388 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005389 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005390 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005391 return NULL;
5392 }
5393 goto done;
5394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005395 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005396 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005399 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005400 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005401 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005402 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005403}
5404
Guido van Rossumc001c092020-04-30 12:12:19 -07005405// slash_with_default:
5406// | param_no_default* param_with_default+ '/' ','
5407// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005408static SlashWithDefault*
5409slash_with_default_rule(Parser *p)
5410{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005411 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005413 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005414 return NULL;
5415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005416 SlashWithDefault* _res = NULL;
5417 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005418 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005419 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005420 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005421 return NULL;
5422 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005423 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 +01005424 Token * _literal;
5425 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005426 asdl_seq * a;
5427 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005428 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005429 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005430 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005431 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005432 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005433 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005434 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005435 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005436 )
5437 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005438 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 +01005439 _res = _PyPegen_slash_with_default ( p , a , b );
5440 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005441 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005442 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005443 return NULL;
5444 }
5445 goto done;
5446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005447 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005448 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005450 }
5451 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005453 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005454 return NULL;
5455 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005456 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 +01005457 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005458 asdl_seq * a;
5459 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005460 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005461 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005462 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005463 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005464 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005465 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005466 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005467 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005468 )
5469 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005470 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 +01005471 _res = _PyPegen_slash_with_default ( p , a , b );
5472 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005473 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005474 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005475 return NULL;
5476 }
5477 goto done;
5478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005479 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005480 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005483 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005484 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005485 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005486 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005487}
5488
5489// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005490// | '*' param_no_default param_maybe_default* kwds?
5491// | '*' ',' param_maybe_default+ kwds?
5492// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005493// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005494static StarEtc*
5495star_etc_rule(Parser *p)
5496{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005497 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005499 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005500 return NULL;
5501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005502 StarEtc* _res = NULL;
5503 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005504 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005506 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005507 return NULL;
5508 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005509 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 +01005510 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005511 arg_ty a;
5512 asdl_seq * b;
5513 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005514 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005515 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005516 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005517 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005518 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005519 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005520 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005521 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005522 )
5523 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005524 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 +01005525 _res = _PyPegen_star_etc ( p , a , b , c );
5526 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005527 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005528 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005529 return NULL;
5530 }
5531 goto done;
5532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005533 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005534 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005536 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005537 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005539 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005540 return NULL;
5541 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005542 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 +01005543 Token * _literal;
5544 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005545 asdl_seq * b;
5546 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005547 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005548 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005549 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005550 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005551 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005552 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005553 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005554 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005555 )
5556 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005557 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 +01005558 _res = _PyPegen_star_etc ( p , NULL , b , c );
5559 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005560 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005561 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005562 return NULL;
5563 }
5564 goto done;
5565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005566 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005567 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005569 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005570 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005572 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005573 return NULL;
5574 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005575 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005576 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005577 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005578 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005579 )
5580 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005581 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005582 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5583 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005586 return NULL;
5587 }
5588 goto done;
5589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005590 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005591 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005593 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005594 { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005596 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005597 return NULL;
5598 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005599 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 +03005600 void *invalid_star_etc_var;
5601 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005602 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005603 )
5604 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005605 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 +01005606 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005607 goto done;
5608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005609 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005610 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005613 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005614 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005615 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005616 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005617}
5618
Guido van Rossumc001c092020-04-30 12:12:19 -07005619// kwds: '**' param_no_default
5620static arg_ty
5621kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005622{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005623 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005625 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005626 return NULL;
5627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005628 arg_ty _res = NULL;
5629 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005630 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005632 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005633 return NULL;
5634 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005635 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005636 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005637 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005638 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005639 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005640 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005641 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005642 )
5643 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005644 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 +01005645 _res = a;
5646 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005647 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005648 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005649 return NULL;
5650 }
5651 goto done;
5652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005653 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005654 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005657 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005658 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005659 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005660 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005661}
5662
5663// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5664static arg_ty
5665param_no_default_rule(Parser *p)
5666{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005667 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005668 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005669 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005670 return NULL;
5671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005672 arg_ty _res = NULL;
5673 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005674 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005676 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005677 return NULL;
5678 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005679 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 +01005680 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005681 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005682 void *tc;
5683 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005684 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005685 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005686 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005687 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005688 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005689 )
5690 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005691 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 +01005692 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5693 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005694 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005696 return NULL;
5697 }
5698 goto done;
5699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005700 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005701 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005703 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005704 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005707 return NULL;
5708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005709 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 -07005710 arg_ty a;
5711 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005712 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005713 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005714 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005715 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005716 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005717 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005718 )
5719 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005720 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 +01005721 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5722 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005723 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005724 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005725 return NULL;
5726 }
5727 goto done;
5728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005729 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005730 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005733 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005734 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005735 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005736 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005737}
5738
Guido van Rossumc001c092020-04-30 12:12:19 -07005739// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005740static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005741param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005742{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005743 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005746 return NULL;
5747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005748 NameDefaultPair* _res = NULL;
5749 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005750 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005752 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005753 return NULL;
5754 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005755 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 +01005756 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005757 arg_ty a;
5758 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005759 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005760 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005761 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005762 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005763 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005764 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005765 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005766 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005767 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005768 )
5769 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005770 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 +01005771 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5772 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005773 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005774 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005775 return NULL;
5776 }
5777 goto done;
5778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005780 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005782 }
5783 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005785 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005786 return NULL;
5787 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005788 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 -07005789 arg_ty a;
5790 expr_ty c;
5791 void *tc;
5792 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005793 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005794 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005795 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005796 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005797 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005798 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005799 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005800 )
5801 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005802 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 +01005803 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5804 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005805 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005807 return NULL;
5808 }
5809 goto done;
5810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005811 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005812 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005815 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005816 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005817 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005818 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005819}
5820
Guido van Rossumc001c092020-04-30 12:12:19 -07005821// param_maybe_default:
5822// | param default? ',' TYPE_COMMENT?
5823// | param default? TYPE_COMMENT? &')'
5824static NameDefaultPair*
5825param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005826{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005827 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005829 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005830 return NULL;
5831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005832 NameDefaultPair* _res = NULL;
5833 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005834 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005836 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005837 return NULL;
5838 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005839 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 +01005840 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005841 arg_ty a;
5842 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005843 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005844 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005845 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005846 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005847 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005848 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005849 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005850 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005851 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005852 )
5853 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005854 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 +01005855 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5856 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005857 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005858 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005859 return NULL;
5860 }
5861 goto done;
5862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005863 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005864 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005866 }
5867 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005870 return NULL;
5871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005872 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 -07005873 arg_ty a;
5874 void *c;
5875 void *tc;
5876 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005877 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005878 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005879 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005880 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005881 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005882 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005883 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005884 )
5885 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005886 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 +01005887 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5888 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005889 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005891 return NULL;
5892 }
5893 goto done;
5894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005895 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005896 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005899 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005900 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005901 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005902 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005903}
5904
Guido van Rossumc001c092020-04-30 12:12:19 -07005905// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005906static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005907param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005908{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005909 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005912 return NULL;
5913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005914 arg_ty _res = NULL;
5915 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005916 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5917 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
5922 UNUSED(_start_lineno); // Only used by EXTRA macro
5923 int _start_col_offset = p->tokens[_mark]->col_offset;
5924 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005925 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005927 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005928 return NULL;
5929 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005930 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005931 expr_ty a;
5932 void *b;
5933 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005934 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005936 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005937 )
5938 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005939 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5941 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005942 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005943 return NULL;
5944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005945 int _end_lineno = _token->end_lineno;
5946 UNUSED(_end_lineno); // Only used by EXTRA macro
5947 int _end_col_offset = _token->end_col_offset;
5948 UNUSED(_end_col_offset); // Only used by EXTRA macro
5949 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5950 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005951 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005952 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005953 return NULL;
5954 }
5955 goto done;
5956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005957 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005958 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005961 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005962 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005963 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005964 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005965}
5966
Guido van Rossumc001c092020-04-30 12:12:19 -07005967// annotation: ':' expression
5968static expr_ty
5969annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005970{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005971 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005973 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005974 return NULL;
5975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005976 expr_ty _res = NULL;
5977 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005978 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005981 return NULL;
5982 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005983 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005984 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005985 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005986 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005987 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005988 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005989 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005990 )
5991 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005992 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005993 _res = a;
5994 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005995 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005996 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005997 return NULL;
5998 }
5999 goto done;
6000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006001 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006002 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006005 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006006 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006007 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006008 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006009}
6010
Guido van Rossumc001c092020-04-30 12:12:19 -07006011// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006012static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006013default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006014{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006015 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006016 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006017 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006018 return NULL;
6019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006020 expr_ty _res = NULL;
6021 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006022 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006024 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006025 return NULL;
6026 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006027 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006028 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006029 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006030 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006031 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006032 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006033 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006034 )
6035 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006036 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006037 _res = a;
6038 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006039 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006040 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006041 return NULL;
6042 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006043 goto done;
6044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006045 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006046 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006049 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006050 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006051 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006052 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006053}
6054
6055// decorators: (('@' named_expression NEWLINE))+
6056static asdl_seq*
6057decorators_rule(Parser *p)
6058{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006059 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006062 return NULL;
6063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006064 asdl_seq* _res = NULL;
6065 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006066 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006069 return NULL;
6070 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006071 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006072 asdl_seq * a;
6073 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006074 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006075 )
6076 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006077 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 +01006078 _res = a;
6079 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006080 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006082 return NULL;
6083 }
6084 goto done;
6085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006086 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006087 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006090 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006091 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006092 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006093 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006094}
6095
6096// class_def: decorators class_def_raw | class_def_raw
6097static stmt_ty
6098class_def_rule(Parser *p)
6099{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006100 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006101 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006102 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006103 return NULL;
6104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006105 stmt_ty _res = NULL;
6106 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006107 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006108 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006109 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006110 return NULL;
6111 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006112 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 +01006113 asdl_seq* a;
6114 stmt_ty b;
6115 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006116 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006117 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006118 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006119 )
6120 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006121 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 +01006122 _res = _PyPegen_class_def_decorators ( p , a , b );
6123 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006126 return NULL;
6127 }
6128 goto done;
6129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006131 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006133 }
6134 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006137 return NULL;
6138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006139 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 +01006140 stmt_ty class_def_raw_var;
6141 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006142 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006143 )
6144 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006145 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 +01006146 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006147 goto done;
6148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006149 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006150 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006153 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006154 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006155 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006156 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006157}
6158
6159// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6160static stmt_ty
6161class_def_raw_rule(Parser *p)
6162{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006163 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006164 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006166 return NULL;
6167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006168 stmt_ty _res = NULL;
6169 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6171 p->error_indicator = 1;
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 int _start_lineno = p->tokens[_mark]->lineno;
6176 UNUSED(_start_lineno); // Only used by EXTRA macro
6177 int _start_col_offset = p->tokens[_mark]->col_offset;
6178 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006179 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006182 return NULL;
6183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006184 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 +01006185 Token * _keyword;
6186 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006187 expr_ty a;
6188 void *b;
6189 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006190 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006191 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006192 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006193 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006194 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006195 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006196 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006197 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006198 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006199 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006200 )
6201 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006202 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 +01006203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6204 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006206 return NULL;
6207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006208 int _end_lineno = _token->end_lineno;
6209 UNUSED(_end_lineno); // Only used by EXTRA macro
6210 int _end_col_offset = _token->end_col_offset;
6211 UNUSED(_end_col_offset); // Only used by EXTRA macro
6212 _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 );
6213 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006214 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006215 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006216 return NULL;
6217 }
6218 goto done;
6219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006220 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006221 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006224 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006225 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006226 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006227 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006228}
6229
6230// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6231static asdl_seq*
6232block_rule(Parser *p)
6233{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006234 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006236 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006237 return NULL;
6238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006239 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006240 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6241 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006242 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006244 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006245 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006246 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006247 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006248 return NULL;
6249 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006250 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 +01006251 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006252 Token * dedent_var;
6253 Token * indent_var;
6254 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006255 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006256 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006257 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006258 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006259 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006260 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006261 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006262 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006263 )
6264 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006265 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 +01006266 _res = a;
6267 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006268 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006270 return NULL;
6271 }
6272 goto done;
6273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006274 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006275 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006277 }
6278 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006281 return NULL;
6282 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006283 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006284 asdl_seq* simple_stmt_var;
6285 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006286 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006287 )
6288 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006289 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006290 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006291 goto done;
6292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006293 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006294 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006296 }
6297 { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006299 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006300 return NULL;
6301 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006302 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006303 void *invalid_block_var;
6304 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006305 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006306 )
6307 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006308 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006309 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006310 goto done;
6311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006312 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006313 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006316 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006318 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006319 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006320 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006321}
6322
6323// expressions_list: ','.star_expression+ ','?
6324static asdl_seq*
6325expressions_list_rule(Parser *p)
6326{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006327 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006330 return NULL;
6331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006332 asdl_seq* _res = NULL;
6333 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006334 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006336 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006337 return NULL;
6338 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006339 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006340 void *_opt_var;
6341 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006342 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006343 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006344 (a = _gather_70_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006345 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006346 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006347 )
6348 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006349 D(fprintf(stderr, "%*c+ expressions_list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006350 _res = a;
6351 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006352 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006354 return NULL;
6355 }
6356 goto done;
6357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006358 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006359 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006362 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006363 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006364 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006365 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006366}
6367
6368// star_expressions:
6369// | star_expression ((',' star_expression))+ ','?
6370// | star_expression ','
6371// | star_expression
6372static expr_ty
6373star_expressions_rule(Parser *p)
6374{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006375 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006376 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006378 return NULL;
6379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006380 expr_ty _res = NULL;
6381 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006382 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6383 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006387 int _start_lineno = p->tokens[_mark]->lineno;
6388 UNUSED(_start_lineno); // Only used by EXTRA macro
6389 int _start_col_offset = p->tokens[_mark]->col_offset;
6390 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006391 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006393 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006394 return NULL;
6395 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006396 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 +01006397 void *_opt_var;
6398 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006399 expr_ty a;
6400 asdl_seq * b;
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 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006404 (b = _loop1_72_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006405 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006406 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006407 )
6408 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006409 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 +01006410 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6411 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006412 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006413 return NULL;
6414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006415 int _end_lineno = _token->end_lineno;
6416 UNUSED(_end_lineno); // Only used by EXTRA macro
6417 int _end_col_offset = _token->end_col_offset;
6418 UNUSED(_end_col_offset); // Only used by EXTRA macro
6419 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6420 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006421 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006422 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006423 return NULL;
6424 }
6425 goto done;
6426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006428 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006430 }
6431 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006434 return NULL;
6435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006436 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006437 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006438 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006439 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006440 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006441 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006442 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006443 )
6444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006445 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 +01006446 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6447 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006449 return NULL;
6450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006451 int _end_lineno = _token->end_lineno;
6452 UNUSED(_end_lineno); // Only used by EXTRA macro
6453 int _end_col_offset = _token->end_col_offset;
6454 UNUSED(_end_col_offset); // Only used by EXTRA macro
6455 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6456 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006457 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006458 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006459 return NULL;
6460 }
6461 goto done;
6462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006463 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006464 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006466 }
6467 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006469 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006470 return NULL;
6471 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006472 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006473 expr_ty star_expression_var;
6474 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006475 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006476 )
6477 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006478 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 +01006479 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006480 goto done;
6481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006483 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006486 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006487 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006489 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006490}
6491
6492// star_expression: '*' bitwise_or | expression
6493static expr_ty
6494star_expression_rule(Parser *p)
6495{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006496 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006497 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006498 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006499 return NULL;
6500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006501 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006502 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6503 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006504 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006506 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006507 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6508 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006510 return NULL;
6511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006512 int _start_lineno = p->tokens[_mark]->lineno;
6513 UNUSED(_start_lineno); // Only used by EXTRA macro
6514 int _start_col_offset = p->tokens[_mark]->col_offset;
6515 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006516 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006518 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006519 return NULL;
6520 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006521 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006522 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006523 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006524 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006525 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006526 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006527 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006528 )
6529 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006530 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 +01006531 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6532 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006533 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006534 return NULL;
6535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006536 int _end_lineno = _token->end_lineno;
6537 UNUSED(_end_lineno); // Only used by EXTRA macro
6538 int _end_col_offset = _token->end_col_offset;
6539 UNUSED(_end_col_offset); // Only used by EXTRA macro
6540 _res = _Py_Starred ( a , Load , EXTRA );
6541 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006542 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006543 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006544 return NULL;
6545 }
6546 goto done;
6547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006548 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006549 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006551 }
6552 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006553 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006554 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006555 return NULL;
6556 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006557 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006558 expr_ty expression_var;
6559 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006560 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006561 )
6562 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006563 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006564 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006565 goto done;
6566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006567 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006568 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006571 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006572 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006573 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006574 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006575 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006576}
6577
6578// star_named_expressions: ','.star_named_expression+ ','?
6579static asdl_seq*
6580star_named_expressions_rule(Parser *p)
6581{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006582 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006583 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006584 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006585 return NULL;
6586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006587 asdl_seq* _res = NULL;
6588 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006589 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006591 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006592 return NULL;
6593 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006594 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 +01006595 void *_opt_var;
6596 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006597 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006598 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006599 (a = _gather_73_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006600 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006601 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006602 )
6603 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006604 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 +01006605 _res = a;
6606 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006607 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006608 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006609 return NULL;
6610 }
6611 goto done;
6612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006613 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006614 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006617 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006618 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006619 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006620 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006621}
6622
6623// star_named_expression: '*' bitwise_or | named_expression
6624static expr_ty
6625star_named_expression_rule(Parser *p)
6626{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006627 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006628 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006629 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006630 return NULL;
6631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006632 expr_ty _res = NULL;
6633 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006634 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006637 return NULL;
6638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006639 int _start_lineno = p->tokens[_mark]->lineno;
6640 UNUSED(_start_lineno); // Only used by EXTRA macro
6641 int _start_col_offset = p->tokens[_mark]->col_offset;
6642 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006643 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006644 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006645 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006646 return NULL;
6647 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006648 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 +01006649 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006650 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006651 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006652 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006653 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006654 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006655 )
6656 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006657 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 +01006658 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6659 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006660 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006661 return NULL;
6662 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006663 int _end_lineno = _token->end_lineno;
6664 UNUSED(_end_lineno); // Only used by EXTRA macro
6665 int _end_col_offset = _token->end_col_offset;
6666 UNUSED(_end_col_offset); // Only used by EXTRA macro
6667 _res = _Py_Starred ( a , Load , EXTRA );
6668 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006671 return NULL;
6672 }
6673 goto done;
6674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006675 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006676 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006678 }
6679 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006681 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006682 return NULL;
6683 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006684 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 +01006685 expr_ty named_expression_var;
6686 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006687 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006688 )
6689 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006690 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 +01006691 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006692 goto done;
6693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006694 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006695 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006698 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006699 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006700 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006701 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006702}
6703
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006704// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006705static expr_ty
6706named_expression_rule(Parser *p)
6707{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006708 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006709 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006711 return NULL;
6712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006713 expr_ty _res = NULL;
6714 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006715 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6716 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006718 return NULL;
6719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006720 int _start_lineno = p->tokens[_mark]->lineno;
6721 UNUSED(_start_lineno); // Only used by EXTRA macro
6722 int _start_col_offset = p->tokens[_mark]->col_offset;
6723 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006724 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006727 return NULL;
6728 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006729 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6730 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006731 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006732 expr_ty a;
6733 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006735 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006736 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006737 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006738 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006739 (_cut_var = 1)
6740 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006741 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006742 )
6743 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006744 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 +01006745 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6746 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006748 return NULL;
6749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006750 int _end_lineno = _token->end_lineno;
6751 UNUSED(_end_lineno); // Only used by EXTRA macro
6752 int _end_col_offset = _token->end_col_offset;
6753 UNUSED(_end_col_offset); // Only used by EXTRA macro
6754 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6755 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006756 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006758 return NULL;
6759 }
6760 goto done;
6761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006762 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006763 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6765 if (_cut_var) {
6766 D(p->level--);
6767 return NULL;
6768 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006769 }
6770 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006772 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006773 return NULL;
6774 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006775 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006776 expr_ty expression_var;
6777 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006778 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006779 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006780 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006781 )
6782 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006783 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006784 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006785 goto done;
6786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006787 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006788 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006790 }
6791 { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006793 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006794 return NULL;
6795 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006796 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 +01006797 void *invalid_named_expression_var;
6798 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006799 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006800 )
6801 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006802 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 +01006803 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006804 goto done;
6805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006806 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006807 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006810 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006811 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006812 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006813 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006814}
6815
6816// annotated_rhs: yield_expr | star_expressions
6817static expr_ty
6818annotated_rhs_rule(Parser *p)
6819{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006820 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006823 return NULL;
6824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006825 expr_ty _res = NULL;
6826 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006827 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006829 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006830 return NULL;
6831 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006832 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006833 expr_ty yield_expr_var;
6834 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006835 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006836 )
6837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006838 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 +01006839 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006840 goto done;
6841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006843 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006845 }
6846 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006847 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006848 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006849 return NULL;
6850 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006851 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006852 expr_ty star_expressions_var;
6853 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006854 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006855 )
6856 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006857 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 +01006858 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006859 goto done;
6860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006861 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006862 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006865 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006866 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006867 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006868 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006869}
6870
6871// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6872static expr_ty
6873expressions_rule(Parser *p)
6874{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006875 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006876 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006877 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006878 return NULL;
6879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006880 expr_ty _res = NULL;
6881 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006882 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6883 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006887 int _start_lineno = p->tokens[_mark]->lineno;
6888 UNUSED(_start_lineno); // Only used by EXTRA macro
6889 int _start_col_offset = p->tokens[_mark]->col_offset;
6890 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006891 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006892 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006893 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006894 return NULL;
6895 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006896 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006897 void *_opt_var;
6898 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006899 expr_ty a;
6900 asdl_seq * b;
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 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006904 (b = _loop1_75_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006905 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006906 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006907 )
6908 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006909 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006910 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6911 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006912 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006913 return NULL;
6914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006915 int _end_lineno = _token->end_lineno;
6916 UNUSED(_end_lineno); // Only used by EXTRA macro
6917 int _end_col_offset = _token->end_col_offset;
6918 UNUSED(_end_col_offset); // Only used by EXTRA macro
6919 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6920 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006921 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006922 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006923 return NULL;
6924 }
6925 goto done;
6926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006927 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006928 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006930 }
6931 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006932 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006933 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006934 return NULL;
6935 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006936 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006937 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006938 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006939 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006940 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006941 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006942 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006943 )
6944 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006945 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6947 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006948 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006949 return NULL;
6950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006951 int _end_lineno = _token->end_lineno;
6952 UNUSED(_end_lineno); // Only used by EXTRA macro
6953 int _end_col_offset = _token->end_col_offset;
6954 UNUSED(_end_col_offset); // Only used by EXTRA macro
6955 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6956 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006957 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006958 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006959 return NULL;
6960 }
6961 goto done;
6962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006963 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006964 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006966 }
6967 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006969 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006970 return NULL;
6971 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006972 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006973 expr_ty expression_var;
6974 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006975 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006976 )
6977 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006978 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006979 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006980 goto done;
6981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006982 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006983 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006986 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006987 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006988 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006989 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006990}
6991
6992// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6993static expr_ty
6994expression_rule(Parser *p)
6995{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006996 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006999 return NULL;
7000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007001 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007002 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7003 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007004 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007006 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007007 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7008 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007010 return NULL;
7011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007012 int _start_lineno = p->tokens[_mark]->lineno;
7013 UNUSED(_start_lineno); // Only used by EXTRA macro
7014 int _start_col_offset = p->tokens[_mark]->col_offset;
7015 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007016 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007017 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007018 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007019 return NULL;
7020 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007021 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 +01007022 Token * _keyword;
7023 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007024 expr_ty a;
7025 expr_ty b;
7026 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007027 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007028 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007029 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007030 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007031 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007032 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007033 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007034 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007035 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007036 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007037 )
7038 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007039 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 +01007040 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7041 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007043 return NULL;
7044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007045 int _end_lineno = _token->end_lineno;
7046 UNUSED(_end_lineno); // Only used by EXTRA macro
7047 int _end_col_offset = _token->end_col_offset;
7048 UNUSED(_end_col_offset); // Only used by EXTRA macro
7049 _res = _Py_IfExp ( b , a , c , EXTRA );
7050 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007051 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007053 return NULL;
7054 }
7055 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, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007060 }
7061 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007062 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007063 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007064 return NULL;
7065 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007066 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007067 expr_ty disjunction_var;
7068 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007069 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007070 )
7071 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007072 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007073 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007074 goto done;
7075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007076 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007077 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007079 }
7080 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007082 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007083 return NULL;
7084 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007085 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007086 expr_ty lambdef_var;
7087 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007088 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007089 )
7090 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007091 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007092 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007093 goto done;
7094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007095 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007096 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007099 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007100 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007101 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007102 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007103 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007104}
7105
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007106// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007107static expr_ty
7108lambdef_rule(Parser *p)
7109{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007110 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007112 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007113 return NULL;
7114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007115 expr_ty _res = NULL;
7116 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007117 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7118 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007119 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007120 return NULL;
7121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007122 int _start_lineno = p->tokens[_mark]->lineno;
7123 UNUSED(_start_lineno); // Only used by EXTRA macro
7124 int _start_col_offset = p->tokens[_mark]->col_offset;
7125 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007126 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007127 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007128 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007129 return NULL;
7130 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007131 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 +01007132 Token * _keyword;
7133 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007134 void *a;
7135 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007136 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007137 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007138 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007139 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007140 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007141 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007142 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007143 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007144 )
7145 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007146 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 +01007147 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7148 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007150 return NULL;
7151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007152 int _end_lineno = _token->end_lineno;
7153 UNUSED(_end_lineno); // Only used by EXTRA macro
7154 int _end_col_offset = _token->end_col_offset;
7155 UNUSED(_end_col_offset); // Only used by EXTRA macro
7156 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7157 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007158 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007159 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007160 return NULL;
7161 }
7162 goto done;
7163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007164 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007165 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7167 }
7168 _res = NULL;
7169 done:
7170 D(p->level--);
7171 return _res;
7172}
7173
7174// lambda_params: invalid_lambda_parameters | lambda_parameters
7175static arguments_ty
7176lambda_params_rule(Parser *p)
7177{
7178 D(p->level++);
7179 if (p->error_indicator) {
7180 D(p->level--);
7181 return NULL;
7182 }
7183 arguments_ty _res = NULL;
7184 int _mark = p->mark;
7185 { // invalid_lambda_parameters
7186 if (p->error_indicator) {
7187 D(p->level--);
7188 return NULL;
7189 }
7190 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7191 void *invalid_lambda_parameters_var;
7192 if (
7193 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7194 )
7195 {
7196 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7197 _res = invalid_lambda_parameters_var;
7198 goto done;
7199 }
7200 p->mark = _mark;
7201 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7203 }
7204 { // lambda_parameters
7205 if (p->error_indicator) {
7206 D(p->level--);
7207 return NULL;
7208 }
7209 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7210 arguments_ty lambda_parameters_var;
7211 if (
7212 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7213 )
7214 {
7215 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7216 _res = lambda_parameters_var;
7217 goto done;
7218 }
7219 p->mark = _mark;
7220 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007223 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007224 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007225 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007226 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007227}
7228
7229// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007230// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7231// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7232// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7233// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007234// | lambda_star_etc
7235static arguments_ty
7236lambda_parameters_rule(Parser *p)
7237{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007238 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007240 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007241 return NULL;
7242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007243 arguments_ty _res = NULL;
7244 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007245 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007246 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007247 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007248 return NULL;
7249 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007250 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 +01007251 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007252 asdl_seq * b;
7253 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007254 void *d;
7255 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007256 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007257 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007258 (b = _loop0_76_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007259 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007260 (c = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007261 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007262 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007263 )
7264 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007265 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 +01007266 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7267 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007268 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007270 return NULL;
7271 }
7272 goto done;
7273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007274 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007275 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7276 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 +01007277 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007278 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007281 return NULL;
7282 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007283 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 +01007284 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007285 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007286 void *c;
7287 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007288 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007289 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007290 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007291 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007292 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007293 )
7294 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007295 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 +01007296 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7297 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007298 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007300 return NULL;
7301 }
7302 goto done;
7303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007304 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007305 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7306 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 +01007307 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007308 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007310 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007311 return NULL;
7312 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007313 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 -07007314 asdl_seq * a;
7315 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007316 void *c;
7317 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007318 (a = _loop1_79_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007319 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007320 (b = _loop0_80_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007321 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007322 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007323 )
7324 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007325 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 +01007326 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7327 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007328 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007330 return NULL;
7331 }
7332 goto done;
7333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007334 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007335 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7336 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 +01007337 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007338 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007340 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007341 return NULL;
7342 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007343 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 -07007344 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007345 void *b;
7346 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007347 (a = _loop1_81_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007348 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007349 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007350 )
7351 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007352 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 +01007353 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7354 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007355 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007357 return NULL;
7358 }
7359 goto done;
7360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007361 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007362 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007364 }
7365 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007368 return NULL;
7369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007370 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 +01007371 StarEtc* a;
7372 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007373 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007374 )
7375 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007376 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 +01007377 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7378 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007379 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007380 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007381 return NULL;
7382 }
7383 goto done;
7384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007385 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007386 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007389 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007390 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007391 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007392 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007393}
7394
Guido van Rossum3941d972020-05-01 09:42:03 -07007395// lambda_slash_no_default:
7396// | lambda_param_no_default+ '/' ','
7397// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007398static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007399lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007400{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007401 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007402 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007403 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007404 return NULL;
7405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007406 asdl_seq* _res = NULL;
7407 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007408 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007411 return NULL;
7412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007413 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 +01007414 Token * _literal;
7415 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007416 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007417 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007418 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007419 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007420 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007421 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007422 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007423 )
7424 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007425 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 +01007426 _res = a;
7427 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007428 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007429 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007430 return NULL;
7431 }
7432 goto done;
7433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007434 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007435 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007437 }
7438 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007441 return NULL;
7442 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007443 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 +01007444 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007445 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007446 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007447 (a = _loop1_83_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007448 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007449 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007450 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007451 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007452 )
7453 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007454 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 +01007455 _res = a;
7456 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007457 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007458 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007459 return NULL;
7460 }
7461 goto done;
7462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007463 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007464 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007466 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007467 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007468 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007469 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007470 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007471}
7472
Guido van Rossum3941d972020-05-01 09:42:03 -07007473// lambda_slash_with_default:
7474// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7475// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007476static SlashWithDefault*
7477lambda_slash_with_default_rule(Parser *p)
7478{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007479 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007482 return NULL;
7483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007484 SlashWithDefault* _res = NULL;
7485 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007486 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007489 return NULL;
7490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007491 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 +01007492 Token * _literal;
7493 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007494 asdl_seq * a;
7495 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007496 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007497 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007498 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007499 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007500 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007501 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007502 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007503 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007504 )
7505 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007506 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 +01007507 _res = _PyPegen_slash_with_default ( p , a , b );
7508 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007509 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007510 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007511 return NULL;
7512 }
7513 goto done;
7514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007515 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007516 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007518 }
7519 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007522 return NULL;
7523 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007524 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 +01007525 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007526 asdl_seq * a;
7527 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007528 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007529 (a = _loop0_86_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007530 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007531 (b = _loop1_87_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007532 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007533 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007534 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007535 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007536 )
7537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007538 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 +01007539 _res = _PyPegen_slash_with_default ( p , a , b );
7540 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007541 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007543 return NULL;
7544 }
7545 goto done;
7546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007547 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007548 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007551 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007552 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007553 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007554 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007555}
7556
7557// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007558// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7559// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7560// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007561// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007562static StarEtc*
7563lambda_star_etc_rule(Parser *p)
7564{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007565 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007568 return NULL;
7569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007570 StarEtc* _res = NULL;
7571 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007572 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007575 return NULL;
7576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007577 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 +01007578 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007579 arg_ty a;
7580 asdl_seq * b;
7581 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007582 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007583 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007585 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007586 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007587 (b = _loop0_88_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007588 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007589 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007590 )
7591 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007592 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 +01007593 _res = _PyPegen_star_etc ( p , a , b , c );
7594 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007597 return NULL;
7598 }
7599 goto done;
7600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007601 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007602 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007604 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007605 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007608 return NULL;
7609 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007610 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 +01007611 Token * _literal;
7612 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007613 asdl_seq * b;
7614 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007615 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007616 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007617 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007618 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007619 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007620 (b = _loop1_89_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007621 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007622 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007623 )
7624 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007625 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 +01007626 _res = _PyPegen_star_etc ( p , NULL , b , c );
7627 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007628 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007629 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007630 return NULL;
7631 }
7632 goto done;
7633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007634 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007635 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007637 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007638 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007639 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007640 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007641 return NULL;
7642 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007643 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 +01007644 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007645 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007646 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007647 )
7648 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007649 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 +01007650 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7651 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007652 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007653 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007654 return NULL;
7655 }
7656 goto done;
7657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007658 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007659 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007661 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007662 { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007663 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007664 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007665 return NULL;
7666 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007667 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 +03007668 void *invalid_lambda_star_etc_var;
7669 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007670 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007671 )
7672 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007673 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 +01007674 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007675 goto done;
7676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007678 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007681 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007682 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007683 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007684 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007685}
7686
Guido van Rossum3941d972020-05-01 09:42:03 -07007687// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007688static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007689lambda_kwds_rule(Parser *p)
7690{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007691 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007692 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007693 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007694 return NULL;
7695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007696 arg_ty _res = NULL;
7697 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007698 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007699 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007700 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007701 return NULL;
7702 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007703 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 +01007704 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007705 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007706 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007707 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007708 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007709 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007710 )
7711 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007712 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 +01007713 _res = a;
7714 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007715 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007716 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007717 return NULL;
7718 }
7719 goto done;
7720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007721 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007722 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007725 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007726 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007727 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007728 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007729}
7730
7731// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7732static arg_ty
7733lambda_param_no_default_rule(Parser *p)
7734{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007735 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007737 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007738 return NULL;
7739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007740 arg_ty _res = NULL;
7741 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007742 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007744 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007745 return NULL;
7746 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007747 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 +01007748 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007749 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007750 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007751 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007752 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007753 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007754 )
7755 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007756 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 +01007757 _res = a;
7758 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007759 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007760 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007761 return NULL;
7762 }
7763 goto done;
7764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007765 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007766 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007768 }
7769 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007770 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007771 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007772 return NULL;
7773 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007774 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 -07007775 arg_ty a;
7776 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007777 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007778 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007779 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007780 )
7781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007782 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 +01007783 _res = a;
7784 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007785 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007786 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007787 return NULL;
7788 }
7789 goto done;
7790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007791 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007792 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007795 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007796 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007797 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007798 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007799}
7800
7801// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7802static NameDefaultPair*
7803lambda_param_with_default_rule(Parser *p)
7804{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007805 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007807 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007808 return NULL;
7809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007810 NameDefaultPair* _res = NULL;
7811 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007812 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007813 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007814 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007815 return NULL;
7816 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007817 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 +01007818 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007819 arg_ty a;
7820 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007821 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007822 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007823 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007824 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007825 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007826 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007827 )
7828 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007829 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 +01007830 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7831 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007832 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007833 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007834 return NULL;
7835 }
7836 goto done;
7837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007838 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007839 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007841 }
7842 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007844 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007845 return NULL;
7846 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007847 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 -07007848 arg_ty a;
7849 expr_ty c;
7850 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007851 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007852 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007853 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007854 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007855 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007856 )
7857 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007858 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 +01007859 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7860 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007861 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007862 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007863 return NULL;
7864 }
7865 goto done;
7866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007867 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007868 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007871 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007872 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007873 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007874 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007875}
7876
7877// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7878static NameDefaultPair*
7879lambda_param_maybe_default_rule(Parser *p)
7880{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007881 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007883 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007884 return NULL;
7885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007886 NameDefaultPair* _res = NULL;
7887 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007888 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007890 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007891 return NULL;
7892 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007893 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 +01007894 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007895 arg_ty a;
7896 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007897 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007898 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007899 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007900 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007901 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007902 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007903 )
7904 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007905 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 +01007906 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7907 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007908 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007909 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007910 return NULL;
7911 }
7912 goto done;
7913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007914 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007915 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007917 }
7918 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007920 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007921 return NULL;
7922 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007923 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 -07007924 arg_ty a;
7925 void *c;
7926 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007927 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007928 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007929 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007930 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007931 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007932 )
7933 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007934 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 +01007935 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7936 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007937 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007938 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007939 return NULL;
7940 }
7941 goto done;
7942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007943 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007944 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007947 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007948 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007949 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007950 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007951}
7952
7953// lambda_param: NAME
7954static arg_ty
7955lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007956{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007957 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007960 return NULL;
7961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007962 arg_ty _res = NULL;
7963 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007964 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7965 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007966 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007967 return NULL;
7968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007969 int _start_lineno = p->tokens[_mark]->lineno;
7970 UNUSED(_start_lineno); // Only used by EXTRA macro
7971 int _start_col_offset = p->tokens[_mark]->col_offset;
7972 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007973 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007975 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007976 return NULL;
7977 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007978 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007979 expr_ty a;
7980 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007981 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007982 )
7983 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007984 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007985 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7986 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007987 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007988 return NULL;
7989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007990 int _end_lineno = _token->end_lineno;
7991 UNUSED(_end_lineno); // Only used by EXTRA macro
7992 int _end_col_offset = _token->end_col_offset;
7993 UNUSED(_end_col_offset); // Only used by EXTRA macro
7994 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7995 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007996 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007997 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007998 return NULL;
7999 }
8000 goto done;
8001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008002 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008003 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008006 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008007 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008008 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008009 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008010}
8011
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008012// disjunction: conjunction (('or' conjunction))+ | conjunction
8013static expr_ty
8014disjunction_rule(Parser *p)
8015{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008016 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008017 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008018 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008019 return NULL;
8020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008021 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008022 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8023 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008024 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008026 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008027 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8028 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008030 return NULL;
8031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008032 int _start_lineno = p->tokens[_mark]->lineno;
8033 UNUSED(_start_lineno); // Only used by EXTRA macro
8034 int _start_col_offset = p->tokens[_mark]->col_offset;
8035 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008036 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008037 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008038 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008039 return NULL;
8040 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008041 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008042 expr_ty a;
8043 asdl_seq * b;
8044 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008045 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008046 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008047 (b = _loop1_90_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008048 )
8049 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008050 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 +01008051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8052 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008054 return NULL;
8055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008056 int _end_lineno = _token->end_lineno;
8057 UNUSED(_end_lineno); // Only used by EXTRA macro
8058 int _end_col_offset = _token->end_col_offset;
8059 UNUSED(_end_col_offset); // Only used by EXTRA macro
8060 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8061 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008064 return NULL;
8065 }
8066 goto done;
8067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008069 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008071 }
8072 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008075 return NULL;
8076 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008077 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008078 expr_ty conjunction_var;
8079 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008080 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008081 )
8082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008083 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008084 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008085 goto done;
8086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008087 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008088 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008091 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008092 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008093 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008095 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008096}
8097
8098// conjunction: inversion (('and' inversion))+ | inversion
8099static expr_ty
8100conjunction_rule(Parser *p)
8101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008102 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008105 return NULL;
8106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008107 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008108 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8109 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008110 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008112 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8114 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008116 return NULL;
8117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008118 int _start_lineno = p->tokens[_mark]->lineno;
8119 UNUSED(_start_lineno); // Only used by EXTRA macro
8120 int _start_col_offset = p->tokens[_mark]->col_offset;
8121 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008122 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008125 return NULL;
8126 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008127 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008128 expr_ty a;
8129 asdl_seq * b;
8130 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008131 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008132 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008133 (b = _loop1_91_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008134 )
8135 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008136 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 +01008137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8138 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008140 return NULL;
8141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008142 int _end_lineno = _token->end_lineno;
8143 UNUSED(_end_lineno); // Only used by EXTRA macro
8144 int _end_col_offset = _token->end_col_offset;
8145 UNUSED(_end_col_offset); // Only used by EXTRA macro
8146 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8147 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008148 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008150 return NULL;
8151 }
8152 goto done;
8153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008154 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008155 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008157 }
8158 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008159 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008160 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008161 return NULL;
8162 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008163 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008164 expr_ty inversion_var;
8165 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008166 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008167 )
8168 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008169 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008170 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008171 goto done;
8172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008173 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008174 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008177 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008178 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008179 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008180 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008181 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008182}
8183
8184// inversion: 'not' inversion | comparison
8185static expr_ty
8186inversion_rule(Parser *p)
8187{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008188 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008189 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008190 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008191 return NULL;
8192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008193 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008194 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8195 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008196 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008198 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008199 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8200 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008201 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008202 return NULL;
8203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008204 int _start_lineno = p->tokens[_mark]->lineno;
8205 UNUSED(_start_lineno); // Only used by EXTRA macro
8206 int _start_col_offset = p->tokens[_mark]->col_offset;
8207 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008208 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008210 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008211 return NULL;
8212 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008213 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008214 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008215 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008216 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008217 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008218 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008219 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008220 )
8221 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008222 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8224 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008226 return NULL;
8227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008228 int _end_lineno = _token->end_lineno;
8229 UNUSED(_end_lineno); // Only used by EXTRA macro
8230 int _end_col_offset = _token->end_col_offset;
8231 UNUSED(_end_col_offset); // Only used by EXTRA macro
8232 _res = _Py_UnaryOp ( Not , a , EXTRA );
8233 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008236 return NULL;
8237 }
8238 goto done;
8239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008241 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008243 }
8244 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008246 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008247 return NULL;
8248 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008249 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008250 expr_ty comparison_var;
8251 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008252 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008253 )
8254 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008255 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008256 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008257 goto done;
8258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008259 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008260 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008263 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008264 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008265 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008266 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008267 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008268}
8269
8270// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8271static expr_ty
8272comparison_rule(Parser *p)
8273{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008274 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008277 return NULL;
8278 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008279 expr_ty _res = NULL;
8280 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008281 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8282 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008283 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008284 return NULL;
8285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008286 int _start_lineno = p->tokens[_mark]->lineno;
8287 UNUSED(_start_lineno); // Only used by EXTRA macro
8288 int _start_col_offset = p->tokens[_mark]->col_offset;
8289 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008290 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008292 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008293 return NULL;
8294 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008295 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 +01008296 expr_ty a;
8297 asdl_seq * b;
8298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008299 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008300 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008301 (b = _loop1_92_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008302 )
8303 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008304 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 +01008305 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8306 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008307 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008308 return NULL;
8309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008310 int _end_lineno = _token->end_lineno;
8311 UNUSED(_end_lineno); // Only used by EXTRA macro
8312 int _end_col_offset = _token->end_col_offset;
8313 UNUSED(_end_col_offset); // Only used by EXTRA macro
8314 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8315 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008316 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008317 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008318 return NULL;
8319 }
8320 goto done;
8321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008322 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008323 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008325 }
8326 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008327 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008328 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008329 return NULL;
8330 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008331 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008332 expr_ty bitwise_or_var;
8333 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008334 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008335 )
8336 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008337 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008338 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008339 goto done;
8340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008341 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008342 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008345 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008346 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008347 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008348 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008349}
8350
8351// compare_op_bitwise_or_pair:
8352// | eq_bitwise_or
8353// | noteq_bitwise_or
8354// | lte_bitwise_or
8355// | lt_bitwise_or
8356// | gte_bitwise_or
8357// | gt_bitwise_or
8358// | notin_bitwise_or
8359// | in_bitwise_or
8360// | isnot_bitwise_or
8361// | is_bitwise_or
8362static CmpopExprPair*
8363compare_op_bitwise_or_pair_rule(Parser *p)
8364{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008365 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008368 return NULL;
8369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008370 CmpopExprPair* _res = NULL;
8371 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008372 { // eq_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, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008378 CmpopExprPair* eq_bitwise_or_var;
8379 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008380 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_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, "eq_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008384 _res = eq_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, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008390 }
8391 { // noteq_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, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008397 CmpopExprPair* noteq_bitwise_or_var;
8398 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008399 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_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, "noteq_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008403 _res = noteq_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, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008409 }
8410 { // lte_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, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008416 CmpopExprPair* lte_bitwise_or_var;
8417 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008418 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_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, "lte_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008422 _res = lte_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, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008428 }
8429 { // lt_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, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008435 CmpopExprPair* lt_bitwise_or_var;
8436 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008437 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_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, "lt_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008441 _res = lt_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, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008447 }
8448 { // gte_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, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008454 CmpopExprPair* gte_bitwise_or_var;
8455 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008456 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_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, "gte_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008460 _res = gte_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, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008466 }
8467 { // gt_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, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008473 CmpopExprPair* gt_bitwise_or_var;
8474 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008475 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_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, "gt_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008479 _res = gt_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, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008485 }
8486 { // notin_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, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008492 CmpopExprPair* notin_bitwise_or_var;
8493 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008494 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_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, "notin_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008498 _res = notin_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, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008504 }
8505 { // in_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, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008511 CmpopExprPair* in_bitwise_or_var;
8512 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008513 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_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, "in_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008517 _res = in_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, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008523 }
8524 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008525 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008526 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008527 return NULL;
8528 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008529 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 +01008530 CmpopExprPair* isnot_bitwise_or_var;
8531 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008532 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008533 )
8534 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008535 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 +01008536 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008537 goto done;
8538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008539 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008540 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008542 }
8543 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008545 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008546 return NULL;
8547 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008548 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 +01008549 CmpopExprPair* is_bitwise_or_var;
8550 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008551 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008552 )
8553 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008554 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 +01008555 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008556 goto done;
8557 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008558 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008559 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008562 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008563 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008564 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008565 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008566}
8567
8568// eq_bitwise_or: '==' bitwise_or
8569static CmpopExprPair*
8570eq_bitwise_or_rule(Parser *p)
8571{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008572 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008574 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008575 return NULL;
8576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008577 CmpopExprPair* _res = NULL;
8578 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008579 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008580 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008581 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008582 return NULL;
8583 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008584 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 +01008585 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008586 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008587 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008588 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008589 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008590 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008591 )
8592 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008593 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 +01008594 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8595 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008596 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008598 return NULL;
8599 }
8600 goto done;
8601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008602 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008603 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008606 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008607 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008608 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008609 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008610}
8611
Pablo Galindo2b74c832020-04-27 18:02:07 +01008612// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008613static CmpopExprPair*
8614noteq_bitwise_or_rule(Parser *p)
8615{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008616 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008619 return NULL;
8620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008621 CmpopExprPair* _res = NULL;
8622 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008623 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008625 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008626 return NULL;
8627 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008628 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008629 void *_tmp_93_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008630 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008631 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008632 (_tmp_93_var = _tmp_93_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008633 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008634 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008635 )
8636 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008637 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 +01008638 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8639 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008640 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008641 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008642 return NULL;
8643 }
8644 goto done;
8645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008646 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008647 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008650 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008651 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008652 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008653 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008654}
8655
8656// lte_bitwise_or: '<=' bitwise_or
8657static CmpopExprPair*
8658lte_bitwise_or_rule(Parser *p)
8659{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008660 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008663 return NULL;
8664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008665 CmpopExprPair* _res = NULL;
8666 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008667 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008668 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008669 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008670 return NULL;
8671 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008672 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 +01008673 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008674 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008675 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008676 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008677 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008678 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008679 )
8680 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008681 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 +01008682 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8683 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008684 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008685 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008686 return NULL;
8687 }
8688 goto done;
8689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008690 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008691 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008694 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008695 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008696 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008697 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008698}
8699
8700// lt_bitwise_or: '<' bitwise_or
8701static CmpopExprPair*
8702lt_bitwise_or_rule(Parser *p)
8703{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008704 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008707 return NULL;
8708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008709 CmpopExprPair* _res = NULL;
8710 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008711 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008713 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008714 return NULL;
8715 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008716 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 +01008717 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008718 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008719 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008720 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008721 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008722 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008723 )
8724 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008725 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 +01008726 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8727 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008728 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008729 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008730 return NULL;
8731 }
8732 goto done;
8733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008735 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008742}
8743
8744// gte_bitwise_or: '>=' bitwise_or
8745static CmpopExprPair*
8746gte_bitwise_or_rule(Parser *p)
8747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008751 return NULL;
8752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008753 CmpopExprPair* _res = NULL;
8754 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008755 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008758 return NULL;
8759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008760 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 +01008761 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008762 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008763 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008764 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008765 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008766 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008767 )
8768 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008769 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 +01008770 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8771 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008772 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008774 return NULL;
8775 }
8776 goto done;
8777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008778 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008779 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008782 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008783 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008784 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008785 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008786}
8787
8788// gt_bitwise_or: '>' bitwise_or
8789static CmpopExprPair*
8790gt_bitwise_or_rule(Parser *p)
8791{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008792 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008795 return NULL;
8796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008797 CmpopExprPair* _res = NULL;
8798 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008799 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008800 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008801 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008802 return NULL;
8803 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008804 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 +01008805 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008806 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008807 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008808 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008810 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008811 )
8812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008813 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 +01008814 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8815 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008816 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008817 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008818 return NULL;
8819 }
8820 goto done;
8821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008822 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008823 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008826 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008827 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008828 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008829 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008830}
8831
8832// notin_bitwise_or: 'not' 'in' bitwise_or
8833static CmpopExprPair*
8834notin_bitwise_or_rule(Parser *p)
8835{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008836 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008838 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008839 return NULL;
8840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008841 CmpopExprPair* _res = NULL;
8842 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008843 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008844 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008845 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008846 return NULL;
8847 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008848 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 +01008849 Token * _keyword;
8850 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008851 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008852 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008853 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008854 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008855 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008856 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008857 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008858 )
8859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008860 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 +01008861 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8862 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008865 return NULL;
8866 }
8867 goto done;
8868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008870 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008873 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008874 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008875 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008876 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008877}
8878
8879// in_bitwise_or: 'in' bitwise_or
8880static CmpopExprPair*
8881in_bitwise_or_rule(Parser *p)
8882{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008883 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008884 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008885 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008886 return NULL;
8887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008888 CmpopExprPair* _res = NULL;
8889 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008890 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008893 return NULL;
8894 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008895 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 +01008896 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008897 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008898 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008899 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008900 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008901 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008902 )
8903 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008904 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 +01008905 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8906 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008907 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008909 return NULL;
8910 }
8911 goto done;
8912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008914 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008917 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008918 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008919 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008920 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008921}
8922
8923// isnot_bitwise_or: 'is' 'not' bitwise_or
8924static CmpopExprPair*
8925isnot_bitwise_or_rule(Parser *p)
8926{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008927 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008930 return NULL;
8931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008932 CmpopExprPair* _res = NULL;
8933 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008934 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008935 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008936 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008937 return NULL;
8938 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008939 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 +01008940 Token * _keyword;
8941 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008942 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008943 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008944 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008945 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008946 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008947 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008948 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008949 )
8950 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008951 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 +01008952 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8953 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008954 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008956 return NULL;
8957 }
8958 goto done;
8959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008960 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008961 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008964 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008965 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008966 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008967 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008968}
8969
8970// is_bitwise_or: 'is' bitwise_or
8971static CmpopExprPair*
8972is_bitwise_or_rule(Parser *p)
8973{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008974 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008975 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008976 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008977 return NULL;
8978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008979 CmpopExprPair* _res = NULL;
8980 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008981 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008982 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008983 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008984 return NULL;
8985 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008986 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 +01008987 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008988 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008989 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008990 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008991 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008992 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008993 )
8994 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008995 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 +01008996 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8997 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008998 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008999 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009000 return NULL;
9001 }
9002 goto done;
9003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009004 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009005 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009008 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009009 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009010 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009011 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009012}
9013
9014// Left-recursive
9015// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9016static expr_ty bitwise_or_raw(Parser *);
9017static expr_ty
9018bitwise_or_rule(Parser *p)
9019{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009020 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009021 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009022 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9023 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009024 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009026 int _mark = p->mark;
9027 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009028 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009029 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009030 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009032 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009034 p->mark = _mark;
9035 void *_raw = bitwise_or_raw(p);
9036 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009037 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009038 _resmark = p->mark;
9039 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009041 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009042 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009043 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009044}
9045static expr_ty
9046bitwise_or_raw(Parser *p)
9047{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009048 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009050 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009051 return NULL;
9052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009053 expr_ty _res = NULL;
9054 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009055 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9056 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009057 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009058 return NULL;
9059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009060 int _start_lineno = p->tokens[_mark]->lineno;
9061 UNUSED(_start_lineno); // Only used by EXTRA macro
9062 int _start_col_offset = p->tokens[_mark]->col_offset;
9063 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009064 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009067 return NULL;
9068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009069 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 +01009070 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009071 expr_ty a;
9072 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009073 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009074 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009075 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009076 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009077 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009078 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009079 )
9080 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009081 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 +01009082 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9083 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009085 return NULL;
9086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009087 int _end_lineno = _token->end_lineno;
9088 UNUSED(_end_lineno); // Only used by EXTRA macro
9089 int _end_col_offset = _token->end_col_offset;
9090 UNUSED(_end_col_offset); // Only used by EXTRA macro
9091 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9092 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009093 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009094 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009095 return NULL;
9096 }
9097 goto done;
9098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009099 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009100 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009102 }
9103 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009104 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009105 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009106 return NULL;
9107 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009108 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009109 expr_ty bitwise_xor_var;
9110 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009111 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009112 )
9113 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009114 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 +01009115 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009116 goto done;
9117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009118 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009119 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009122 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009123 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009124 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009125 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009126}
9127
9128// Left-recursive
9129// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9130static expr_ty bitwise_xor_raw(Parser *);
9131static expr_ty
9132bitwise_xor_rule(Parser *p)
9133{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009134 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009135 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009136 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9137 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009138 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009140 int _mark = p->mark;
9141 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009142 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009143 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009144 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009145 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009146 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009148 p->mark = _mark;
9149 void *_raw = bitwise_xor_raw(p);
9150 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009151 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009152 _resmark = p->mark;
9153 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009155 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009156 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009157 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009158}
9159static expr_ty
9160bitwise_xor_raw(Parser *p)
9161{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009162 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009163 if (p->error_indicator) {
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 expr_ty _res = NULL;
9168 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009169 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9170 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009171 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009172 return NULL;
9173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009174 int _start_lineno = p->tokens[_mark]->lineno;
9175 UNUSED(_start_lineno); // Only used by EXTRA macro
9176 int _start_col_offset = p->tokens[_mark]->col_offset;
9177 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009178 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009180 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009181 return NULL;
9182 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009183 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 +01009184 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009185 expr_ty a;
9186 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009187 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009188 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009190 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009191 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009192 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009193 )
9194 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009195 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 +01009196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9197 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009198 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009199 return NULL;
9200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009201 int _end_lineno = _token->end_lineno;
9202 UNUSED(_end_lineno); // Only used by EXTRA macro
9203 int _end_col_offset = _token->end_col_offset;
9204 UNUSED(_end_col_offset); // Only used by EXTRA macro
9205 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9206 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009207 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009208 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009209 return NULL;
9210 }
9211 goto done;
9212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009213 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009214 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009216 }
9217 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009218 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009219 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009220 return NULL;
9221 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009222 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009223 expr_ty bitwise_and_var;
9224 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009225 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009226 )
9227 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009228 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 +01009229 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009230 goto done;
9231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009232 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009233 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009236 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009237 done:
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}
9241
9242// Left-recursive
9243// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9244static expr_ty bitwise_and_raw(Parser *);
9245static expr_ty
9246bitwise_and_rule(Parser *p)
9247{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009248 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009249 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009250 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9251 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009252 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009254 int _mark = p->mark;
9255 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009256 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009257 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009258 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009259 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009260 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009262 p->mark = _mark;
9263 void *_raw = bitwise_and_raw(p);
9264 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009265 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009266 _resmark = p->mark;
9267 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009269 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009270 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009271 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009272}
9273static expr_ty
9274bitwise_and_raw(Parser *p)
9275{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009276 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009278 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009279 return NULL;
9280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009281 expr_ty _res = NULL;
9282 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009283 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9284 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009285 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009286 return NULL;
9287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009288 int _start_lineno = p->tokens[_mark]->lineno;
9289 UNUSED(_start_lineno); // Only used by EXTRA macro
9290 int _start_col_offset = p->tokens[_mark]->col_offset;
9291 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009292 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009294 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009295 return NULL;
9296 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009297 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 +01009298 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009299 expr_ty a;
9300 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009301 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009302 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009303 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009304 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009305 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009306 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009307 )
9308 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009309 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 +01009310 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9311 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009313 return NULL;
9314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009315 int _end_lineno = _token->end_lineno;
9316 UNUSED(_end_lineno); // Only used by EXTRA macro
9317 int _end_col_offset = _token->end_col_offset;
9318 UNUSED(_end_col_offset); // Only used by EXTRA macro
9319 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9320 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009321 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009322 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009323 return NULL;
9324 }
9325 goto done;
9326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009327 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009328 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009330 }
9331 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009332 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009333 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009334 return NULL;
9335 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009336 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009337 expr_ty shift_expr_var;
9338 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009339 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009340 )
9341 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009342 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 +01009343 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009344 goto done;
9345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009346 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009347 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009350 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009351 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009352 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009353 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009354}
9355
9356// Left-recursive
9357// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9358static expr_ty shift_expr_raw(Parser *);
9359static expr_ty
9360shift_expr_rule(Parser *p)
9361{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009362 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009363 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009364 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9365 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009366 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009368 int _mark = p->mark;
9369 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009370 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009371 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009372 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009373 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009374 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009376 p->mark = _mark;
9377 void *_raw = shift_expr_raw(p);
9378 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009379 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009380 _resmark = p->mark;
9381 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009383 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009384 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009385 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009386}
9387static expr_ty
9388shift_expr_raw(Parser *p)
9389{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009390 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009393 return NULL;
9394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009395 expr_ty _res = NULL;
9396 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009397 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9398 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009400 return NULL;
9401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009402 int _start_lineno = p->tokens[_mark]->lineno;
9403 UNUSED(_start_lineno); // Only used by EXTRA macro
9404 int _start_col_offset = p->tokens[_mark]->col_offset;
9405 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009406 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009408 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009409 return NULL;
9410 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009411 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 +01009412 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009413 expr_ty a;
9414 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009415 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009416 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009417 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009418 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009419 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009420 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009421 )
9422 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009423 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 +01009424 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9425 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009426 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009427 return NULL;
9428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009429 int _end_lineno = _token->end_lineno;
9430 UNUSED(_end_lineno); // Only used by EXTRA macro
9431 int _end_col_offset = _token->end_col_offset;
9432 UNUSED(_end_col_offset); // Only used by EXTRA macro
9433 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9434 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009435 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009436 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009437 return NULL;
9438 }
9439 goto done;
9440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009441 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009442 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009444 }
9445 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009446 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009447 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009448 return NULL;
9449 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009450 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 +01009451 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009452 expr_ty a;
9453 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009454 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009455 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009456 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009457 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009458 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009459 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009460 )
9461 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009462 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 +01009463 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9464 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009465 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009466 return NULL;
9467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009468 int _end_lineno = _token->end_lineno;
9469 UNUSED(_end_lineno); // Only used by EXTRA macro
9470 int _end_col_offset = _token->end_col_offset;
9471 UNUSED(_end_col_offset); // Only used by EXTRA macro
9472 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9473 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009474 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009476 return NULL;
9477 }
9478 goto done;
9479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009480 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009481 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009483 }
9484 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009485 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009486 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009487 return NULL;
9488 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009489 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009490 expr_ty sum_var;
9491 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009492 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009493 )
9494 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009495 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009496 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009497 goto done;
9498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009499 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009500 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009503 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009505 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009506 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009507}
9508
9509// Left-recursive
9510// sum: sum '+' term | sum '-' term | term
9511static expr_ty sum_raw(Parser *);
9512static expr_ty
9513sum_rule(Parser *p)
9514{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009515 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009516 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009517 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9518 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009519 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009521 int _mark = p->mark;
9522 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009523 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009524 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009525 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009526 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009527 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009529 p->mark = _mark;
9530 void *_raw = sum_raw(p);
9531 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009532 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009533 _resmark = p->mark;
9534 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009536 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009537 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009538 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009539}
9540static expr_ty
9541sum_raw(Parser *p)
9542{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009543 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009546 return NULL;
9547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009548 expr_ty _res = NULL;
9549 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009550 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9551 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009553 return NULL;
9554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009555 int _start_lineno = p->tokens[_mark]->lineno;
9556 UNUSED(_start_lineno); // Only used by EXTRA macro
9557 int _start_col_offset = p->tokens[_mark]->col_offset;
9558 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009559 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009562 return NULL;
9563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009564 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009565 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009566 expr_ty a;
9567 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009568 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009569 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009570 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009571 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009572 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009573 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009574 )
9575 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009576 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009577 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9578 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009580 return NULL;
9581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009582 int _end_lineno = _token->end_lineno;
9583 UNUSED(_end_lineno); // Only used by EXTRA macro
9584 int _end_col_offset = _token->end_col_offset;
9585 UNUSED(_end_col_offset); // Only used by EXTRA macro
9586 _res = _Py_BinOp ( a , Add , b , EXTRA );
9587 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009588 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009590 return NULL;
9591 }
9592 goto done;
9593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009594 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009595 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009597 }
9598 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009601 return NULL;
9602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009603 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009604 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009605 expr_ty a;
9606 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009607 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009608 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009609 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009610 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009611 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009612 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009613 )
9614 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009615 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009616 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9617 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009619 return NULL;
9620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009621 int _end_lineno = _token->end_lineno;
9622 UNUSED(_end_lineno); // Only used by EXTRA macro
9623 int _end_col_offset = _token->end_col_offset;
9624 UNUSED(_end_col_offset); // Only used by EXTRA macro
9625 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9626 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009627 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009628 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009629 return NULL;
9630 }
9631 goto done;
9632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009633 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009634 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009636 }
9637 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009639 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009640 return NULL;
9641 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009642 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009643 expr_ty term_var;
9644 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009645 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009646 )
9647 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009648 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009649 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009650 goto done;
9651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009652 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009653 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009656 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009657 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009658 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009659 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009660}
9661
9662// Left-recursive
9663// term:
9664// | term '*' factor
9665// | term '/' factor
9666// | term '//' factor
9667// | term '%' factor
9668// | term '@' factor
9669// | factor
9670static expr_ty term_raw(Parser *);
9671static expr_ty
9672term_rule(Parser *p)
9673{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009674 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009675 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009676 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9677 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009678 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009680 int _mark = p->mark;
9681 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009682 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009683 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009684 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009685 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009686 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009688 p->mark = _mark;
9689 void *_raw = term_raw(p);
9690 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009691 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009692 _resmark = p->mark;
9693 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009695 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009696 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009697 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009698}
9699static expr_ty
9700term_raw(Parser *p)
9701{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009702 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009705 return NULL;
9706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009707 expr_ty _res = NULL;
9708 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009709 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9710 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009711 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009712 return NULL;
9713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009714 int _start_lineno = p->tokens[_mark]->lineno;
9715 UNUSED(_start_lineno); // Only used by EXTRA macro
9716 int _start_col_offset = p->tokens[_mark]->col_offset;
9717 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009718 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009719 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009720 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009721 return NULL;
9722 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009723 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009724 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009725 expr_ty a;
9726 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009727 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009728 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009729 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009730 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009731 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009732 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009733 )
9734 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009735 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009736 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9737 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009738 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009739 return NULL;
9740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009741 int _end_lineno = _token->end_lineno;
9742 UNUSED(_end_lineno); // Only used by EXTRA macro
9743 int _end_col_offset = _token->end_col_offset;
9744 UNUSED(_end_col_offset); // Only used by EXTRA macro
9745 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9746 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009747 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009749 return NULL;
9750 }
9751 goto done;
9752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009753 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009754 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009756 }
9757 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009760 return NULL;
9761 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009762 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009763 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009764 expr_ty a;
9765 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009766 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009767 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009768 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009769 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009770 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009771 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009772 )
9773 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009774 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009775 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9776 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009777 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009778 return NULL;
9779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009780 int _end_lineno = _token->end_lineno;
9781 UNUSED(_end_lineno); // Only used by EXTRA macro
9782 int _end_col_offset = _token->end_col_offset;
9783 UNUSED(_end_col_offset); // Only used by EXTRA macro
9784 _res = _Py_BinOp ( a , Div , b , EXTRA );
9785 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009786 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009787 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009788 return NULL;
9789 }
9790 goto done;
9791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009792 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009793 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009795 }
9796 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009797 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009798 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009799 return NULL;
9800 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009801 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009802 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009803 expr_ty a;
9804 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009805 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009806 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009807 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009808 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009810 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 )
9812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009813 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009814 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9815 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009817 return NULL;
9818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009819 int _end_lineno = _token->end_lineno;
9820 UNUSED(_end_lineno); // Only used by EXTRA macro
9821 int _end_col_offset = _token->end_col_offset;
9822 UNUSED(_end_col_offset); // Only used by EXTRA macro
9823 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9824 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009825 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009827 return NULL;
9828 }
9829 goto done;
9830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009831 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009832 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009834 }
9835 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009837 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009838 return NULL;
9839 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009840 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009841 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009842 expr_ty a;
9843 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009844 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009845 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009846 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009847 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009848 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009849 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009850 )
9851 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009852 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009853 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9854 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009855 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009856 return NULL;
9857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009858 int _end_lineno = _token->end_lineno;
9859 UNUSED(_end_lineno); // Only used by EXTRA macro
9860 int _end_col_offset = _token->end_col_offset;
9861 UNUSED(_end_col_offset); // Only used by EXTRA macro
9862 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9863 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009864 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009865 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009866 return NULL;
9867 }
9868 goto done;
9869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009870 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009871 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009873 }
9874 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009876 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009877 return NULL;
9878 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009879 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009880 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009881 expr_ty a;
9882 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009884 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009885 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009886 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009887 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009888 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009889 )
9890 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009891 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9893 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009895 return NULL;
9896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009897 int _end_lineno = _token->end_lineno;
9898 UNUSED(_end_lineno); // Only used by EXTRA macro
9899 int _end_col_offset = _token->end_col_offset;
9900 UNUSED(_end_col_offset); // Only used by EXTRA macro
9901 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9902 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009903 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009904 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009905 return NULL;
9906 }
9907 goto done;
9908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009909 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009910 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009912 }
9913 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009916 return NULL;
9917 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009918 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009919 expr_ty factor_var;
9920 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009921 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009922 )
9923 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009924 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009925 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009926 goto done;
9927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009928 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009929 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009932 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009933 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009934 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009935 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009936}
9937
9938// factor: '+' factor | '-' factor | '~' factor | power
9939static expr_ty
9940factor_rule(Parser *p)
9941{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009942 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009945 return NULL;
9946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009947 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009948 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9949 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009950 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009952 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009953 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9954 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009956 return NULL;
9957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009958 int _start_lineno = p->tokens[_mark]->lineno;
9959 UNUSED(_start_lineno); // Only used by EXTRA macro
9960 int _start_col_offset = p->tokens[_mark]->col_offset;
9961 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009962 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009963 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009964 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009965 return NULL;
9966 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009967 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009968 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009969 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009970 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009971 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009972 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009973 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009974 )
9975 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009976 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9978 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009980 return NULL;
9981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009982 int _end_lineno = _token->end_lineno;
9983 UNUSED(_end_lineno); // Only used by EXTRA macro
9984 int _end_col_offset = _token->end_col_offset;
9985 UNUSED(_end_col_offset); // Only used by EXTRA macro
9986 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9987 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009988 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009990 return NULL;
9991 }
9992 goto done;
9993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009994 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009995 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009997 }
9998 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010001 return NULL;
10002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010003 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010004 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010005 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010006 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010007 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010008 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010009 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010010 )
10011 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010012 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010013 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10014 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010015 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010016 return NULL;
10017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010018 int _end_lineno = _token->end_lineno;
10019 UNUSED(_end_lineno); // Only used by EXTRA macro
10020 int _end_col_offset = _token->end_col_offset;
10021 UNUSED(_end_col_offset); // Only used by EXTRA macro
10022 _res = _Py_UnaryOp ( USub , a , EXTRA );
10023 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010024 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010026 return NULL;
10027 }
10028 goto done;
10029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010030 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010031 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010033 }
10034 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010036 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010037 return NULL;
10038 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010039 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010040 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010041 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010042 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010043 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010044 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010045 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010046 )
10047 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010048 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010049 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10050 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010051 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010052 return NULL;
10053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010054 int _end_lineno = _token->end_lineno;
10055 UNUSED(_end_lineno); // Only used by EXTRA macro
10056 int _end_col_offset = _token->end_col_offset;
10057 UNUSED(_end_col_offset); // Only used by EXTRA macro
10058 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10059 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010060 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010062 return NULL;
10063 }
10064 goto done;
10065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010066 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010067 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010069 }
10070 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010072 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010073 return NULL;
10074 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010075 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010076 expr_ty power_var;
10077 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010078 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010079 )
10080 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010081 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010082 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010083 goto done;
10084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010085 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010086 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010089 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010090 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010091 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010092 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010093 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010094}
10095
10096// power: await_primary '**' factor | await_primary
10097static expr_ty
10098power_rule(Parser *p)
10099{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010100 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010101 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010102 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010103 return NULL;
10104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010105 expr_ty _res = NULL;
10106 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010107 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10108 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010109 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010110 return NULL;
10111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010112 int _start_lineno = p->tokens[_mark]->lineno;
10113 UNUSED(_start_lineno); // Only used by EXTRA macro
10114 int _start_col_offset = p->tokens[_mark]->col_offset;
10115 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010116 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010119 return NULL;
10120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010121 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010122 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010123 expr_ty a;
10124 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010125 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010126 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010127 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010128 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010129 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010130 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010131 )
10132 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010133 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 +010010134 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10135 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010136 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010137 return NULL;
10138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010139 int _end_lineno = _token->end_lineno;
10140 UNUSED(_end_lineno); // Only used by EXTRA macro
10141 int _end_col_offset = _token->end_col_offset;
10142 UNUSED(_end_col_offset); // Only used by EXTRA macro
10143 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10144 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010145 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010146 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010147 return NULL;
10148 }
10149 goto done;
10150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010151 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010152 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010154 }
10155 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010156 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010157 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010158 return NULL;
10159 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010160 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010161 expr_ty await_primary_var;
10162 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010163 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010164 )
10165 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010166 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010167 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010168 goto done;
10169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010170 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010171 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010174 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010175 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010176 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010177 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010178}
10179
10180// await_primary: AWAIT primary | primary
10181static expr_ty
10182await_primary_rule(Parser *p)
10183{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010184 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010187 return NULL;
10188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010189 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010190 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10191 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010192 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010194 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010195 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10196 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010198 return NULL;
10199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010200 int _start_lineno = p->tokens[_mark]->lineno;
10201 UNUSED(_start_lineno); // Only used by EXTRA macro
10202 int _start_col_offset = p->tokens[_mark]->col_offset;
10203 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010204 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010205 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010206 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010207 return NULL;
10208 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010209 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010210 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010211 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010212 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010213 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010214 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010215 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010216 )
10217 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010218 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 +010010219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10220 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010222 return NULL;
10223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010224 int _end_lineno = _token->end_lineno;
10225 UNUSED(_end_lineno); // Only used by EXTRA macro
10226 int _end_col_offset = _token->end_col_offset;
10227 UNUSED(_end_col_offset); // Only used by EXTRA macro
10228 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010232 return NULL;
10233 }
10234 goto done;
10235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010237 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010239 }
10240 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010243 return NULL;
10244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010245 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010246 expr_ty primary_var;
10247 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010248 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010249 )
10250 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010251 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010252 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010253 goto done;
10254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010256 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010259 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010261 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010262 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010263 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010264}
10265
10266// Left-recursive
10267// primary:
10268// | primary '.' NAME
10269// | primary genexp
10270// | primary '(' arguments? ')'
10271// | primary '[' slices ']'
10272// | atom
10273static expr_ty primary_raw(Parser *);
10274static expr_ty
10275primary_rule(Parser *p)
10276{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010277 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010278 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010279 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10280 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010281 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010283 int _mark = p->mark;
10284 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010285 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010286 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010287 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010288 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010289 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010291 p->mark = _mark;
10292 void *_raw = primary_raw(p);
10293 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010294 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010295 _resmark = p->mark;
10296 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010298 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010299 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010300 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010301}
10302static expr_ty
10303primary_raw(Parser *p)
10304{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010305 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010306 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010307 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010308 return NULL;
10309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010310 expr_ty _res = NULL;
10311 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010312 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10313 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010315 return NULL;
10316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010317 int _start_lineno = p->tokens[_mark]->lineno;
10318 UNUSED(_start_lineno); // Only used by EXTRA macro
10319 int _start_col_offset = p->tokens[_mark]->col_offset;
10320 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010321 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010322 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010323 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010324 return NULL;
10325 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010326 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010327 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010328 expr_ty a;
10329 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010330 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010331 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010332 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010333 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010334 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010335 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010336 )
10337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010338 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10340 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010342 return NULL;
10343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010344 int _end_lineno = _token->end_lineno;
10345 UNUSED(_end_lineno); // Only used by EXTRA macro
10346 int _end_col_offset = _token->end_col_offset;
10347 UNUSED(_end_col_offset); // Only used by EXTRA macro
10348 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10349 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010350 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010351 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010352 return NULL;
10353 }
10354 goto done;
10355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010356 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010357 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010359 }
10360 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010362 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010363 return NULL;
10364 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010365 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010366 expr_ty a;
10367 expr_ty b;
10368 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010369 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010370 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010371 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010372 )
10373 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010374 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010375 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10376 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010378 return NULL;
10379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010380 int _end_lineno = _token->end_lineno;
10381 UNUSED(_end_lineno); // Only used by EXTRA macro
10382 int _end_col_offset = _token->end_col_offset;
10383 UNUSED(_end_col_offset); // Only used by EXTRA macro
10384 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10385 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010386 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010387 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010388 return NULL;
10389 }
10390 goto done;
10391 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010392 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010393 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010395 }
10396 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010397 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010398 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010399 return NULL;
10400 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010401 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010402 Token * _literal;
10403 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010404 expr_ty a;
10405 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010406 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010407 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010408 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010409 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010410 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010411 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010412 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010413 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010414 )
10415 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010416 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10418 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010420 return NULL;
10421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010422 int _end_lineno = _token->end_lineno;
10423 UNUSED(_end_lineno); // Only used by EXTRA macro
10424 int _end_col_offset = _token->end_col_offset;
10425 UNUSED(_end_col_offset); // Only used by EXTRA macro
10426 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10427 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010428 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010429 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010430 return NULL;
10431 }
10432 goto done;
10433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010434 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010435 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010437 }
10438 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010441 return NULL;
10442 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010443 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010444 Token * _literal;
10445 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010446 expr_ty a;
10447 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010448 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010449 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010450 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010451 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010453 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010454 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010455 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010456 )
10457 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010458 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10460 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010461 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010462 return NULL;
10463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010464 int _end_lineno = _token->end_lineno;
10465 UNUSED(_end_lineno); // Only used by EXTRA macro
10466 int _end_col_offset = _token->end_col_offset;
10467 UNUSED(_end_col_offset); // Only used by EXTRA macro
10468 _res = _Py_Subscript ( a , b , Load , EXTRA );
10469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010472 return NULL;
10473 }
10474 goto done;
10475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010477 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010479 }
10480 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010482 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010483 return NULL;
10484 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010485 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010486 expr_ty atom_var;
10487 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010488 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010489 )
10490 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010491 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010492 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010493 goto done;
10494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010495 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010496 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010499 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010500 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010501 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010502 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010503}
10504
10505// slices: slice !',' | ','.slice+ ','?
10506static expr_ty
10507slices_rule(Parser *p)
10508{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010509 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010512 return NULL;
10513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010514 expr_ty _res = NULL;
10515 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010516 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10517 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010519 return NULL;
10520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010521 int _start_lineno = p->tokens[_mark]->lineno;
10522 UNUSED(_start_lineno); // Only used by EXTRA macro
10523 int _start_col_offset = p->tokens[_mark]->col_offset;
10524 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010525 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010527 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010528 return NULL;
10529 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010530 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010531 expr_ty a;
10532 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010533 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010534 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010535 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010536 )
10537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010538 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010539 _res = a;
10540 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010541 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010543 return NULL;
10544 }
10545 goto done;
10546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010547 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010548 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010550 }
10551 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010554 return NULL;
10555 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010556 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010557 void *_opt_var;
10558 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010559 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010560 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010561 (a = _gather_94_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010562 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010563 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010564 )
10565 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010566 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010567 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10568 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010569 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010570 return NULL;
10571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010572 int _end_lineno = _token->end_lineno;
10573 UNUSED(_end_lineno); // Only used by EXTRA macro
10574 int _end_col_offset = _token->end_col_offset;
10575 UNUSED(_end_col_offset); // Only used by EXTRA macro
10576 _res = _Py_Tuple ( a , Load , EXTRA );
10577 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010578 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010580 return NULL;
10581 }
10582 goto done;
10583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010584 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010585 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010588 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010589 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010590 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010591 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010592}
10593
10594// slice: expression? ':' expression? [':' expression?] | expression
10595static expr_ty
10596slice_rule(Parser *p)
10597{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010598 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010601 return NULL;
10602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010603 expr_ty _res = NULL;
10604 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010605 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10606 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010608 return NULL;
10609 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010610 int _start_lineno = p->tokens[_mark]->lineno;
10611 UNUSED(_start_lineno); // Only used by EXTRA macro
10612 int _start_col_offset = p->tokens[_mark]->col_offset;
10613 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010614 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010615 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010616 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010617 return NULL;
10618 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010619 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010620 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010621 void *a;
10622 void *b;
10623 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010624 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010625 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010626 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010627 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010628 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010629 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010630 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010631 (c = _tmp_96_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010632 )
10633 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010634 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 +010010635 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10636 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010637 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010638 return NULL;
10639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010640 int _end_lineno = _token->end_lineno;
10641 UNUSED(_end_lineno); // Only used by EXTRA macro
10642 int _end_col_offset = _token->end_col_offset;
10643 UNUSED(_end_col_offset); // Only used by EXTRA macro
10644 _res = _Py_Slice ( a , b , c , EXTRA );
10645 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010646 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010647 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010648 return NULL;
10649 }
10650 goto done;
10651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010652 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010653 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010655 }
10656 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010659 return NULL;
10660 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010661 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010662 expr_ty a;
10663 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010664 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010665 )
10666 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010667 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010668 _res = a;
10669 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010670 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010672 return NULL;
10673 }
10674 goto done;
10675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010676 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010677 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010680 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010681 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010682 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010683 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010684}
10685
10686// atom:
10687// | NAME
10688// | 'True'
10689// | 'False'
10690// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010691// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010692// | &STRING strings
10693// | NUMBER
10694// | &'(' (tuple | group | genexp)
10695// | &'[' (list | listcomp)
10696// | &'{' (dict | set | dictcomp | setcomp)
10697// | '...'
10698static expr_ty
10699atom_rule(Parser *p)
10700{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010701 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010702 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010703 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010704 return NULL;
10705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010706 expr_ty _res = NULL;
10707 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010708 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010711 return NULL;
10712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010713 int _start_lineno = p->tokens[_mark]->lineno;
10714 UNUSED(_start_lineno); // Only used by EXTRA macro
10715 int _start_col_offset = p->tokens[_mark]->col_offset;
10716 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010717 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010720 return NULL;
10721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010722 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010723 expr_ty name_var;
10724 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010725 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010726 )
10727 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010728 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010729 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010730 goto done;
10731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010732 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010733 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010735 }
10736 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010737 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010738 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010739 return NULL;
10740 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010741 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010742 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010743 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010744 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010745 )
10746 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010747 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010748 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10749 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010751 return NULL;
10752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010753 int _end_lineno = _token->end_lineno;
10754 UNUSED(_end_lineno); // Only used by EXTRA macro
10755 int _end_col_offset = _token->end_col_offset;
10756 UNUSED(_end_col_offset); // Only used by EXTRA macro
10757 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10758 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010759 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010760 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010761 return NULL;
10762 }
10763 goto done;
10764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010765 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010766 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010768 }
10769 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010770 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010771 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010772 return NULL;
10773 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010774 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010775 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010776 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010777 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010778 )
10779 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010780 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010781 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10782 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010784 return NULL;
10785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010786 int _end_lineno = _token->end_lineno;
10787 UNUSED(_end_lineno); // Only used by EXTRA macro
10788 int _end_col_offset = _token->end_col_offset;
10789 UNUSED(_end_col_offset); // Only used by EXTRA macro
10790 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10791 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010792 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010794 return NULL;
10795 }
10796 goto done;
10797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010798 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010799 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010801 }
10802 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010803 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010804 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010805 return NULL;
10806 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010807 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010808 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010809 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010810 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010811 )
10812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010813 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010814 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10815 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010817 return NULL;
10818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010819 int _end_lineno = _token->end_lineno;
10820 UNUSED(_end_lineno); // Only used by EXTRA macro
10821 int _end_col_offset = _token->end_col_offset;
10822 UNUSED(_end_col_offset); // Only used by EXTRA macro
10823 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10824 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010825 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010827 return NULL;
10828 }
10829 goto done;
10830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010831 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010832 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010834 }
Pablo Galindo37824972020-06-11 19:29:13 +010010835 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010837 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010838 return NULL;
10839 }
Pablo Galindo37824972020-06-11 19:29:13 +010010840 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010841 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010842 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010843 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010844 )
10845 {
Pablo Galindo37824972020-06-11 19:29:13 +010010846 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010847 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10848 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010849 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010850 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010851 return NULL;
10852 }
10853 goto done;
10854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010855 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010856 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010858 }
10859 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010860 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010861 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010862 return NULL;
10863 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010864 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010865 expr_ty strings_var;
10866 if (
10867 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10868 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010869 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010870 )
10871 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010872 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010873 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010874 goto done;
10875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010876 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010877 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010879 }
10880 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010881 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010882 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010883 return NULL;
10884 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010885 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010886 expr_ty number_var;
10887 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010888 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010889 )
10890 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010891 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010892 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010893 goto done;
10894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010895 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010896 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010898 }
10899 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010902 return NULL;
10903 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010904 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010905 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010906 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010907 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010908 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010909 (_tmp_97_var = _tmp_97_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010910 )
10911 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010912 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010913 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010914 goto done;
10915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010916 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010917 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010919 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010920 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010922 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010923 return NULL;
10924 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010925 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010926 void *_tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010927 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010928 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010929 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010930 (_tmp_98_var = _tmp_98_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010931 )
10932 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010933 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010934 _res = _tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010935 goto done;
10936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010937 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010938 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010940 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010941 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010942 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010943 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010944 return NULL;
10945 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010946 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010947 void *_tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010948 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010949 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010950 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010951 (_tmp_99_var = _tmp_99_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010952 )
10953 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010954 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010955 _res = _tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010956 goto done;
10957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010958 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010959 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010961 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010962 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010963 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010964 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010965 return NULL;
10966 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010967 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010968 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010969 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010970 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010971 )
10972 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010973 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10975 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010976 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010977 return NULL;
10978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010979 int _end_lineno = _token->end_lineno;
10980 UNUSED(_end_lineno); // Only used by EXTRA macro
10981 int _end_col_offset = _token->end_col_offset;
10982 UNUSED(_end_col_offset); // Only used by EXTRA macro
10983 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10984 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010985 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010987 return NULL;
10988 }
10989 goto done;
10990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010991 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010992 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010995 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010996 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010997 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010998 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010999}
11000
11001// strings: STRING+
11002static expr_ty
11003strings_rule(Parser *p)
11004{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011005 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011006 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011007 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011008 return NULL;
11009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011010 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011011 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11012 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011013 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011015 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011016 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011017 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011018 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011019 return NULL;
11020 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011021 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011022 asdl_seq * a;
11023 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011024 (a = _loop1_100_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011025 )
11026 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011027 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011028 _res = _PyPegen_concatenate_strings ( p , a );
11029 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011030 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011032 return NULL;
11033 }
11034 goto done;
11035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011036 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011037 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011040 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011041 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011042 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011043 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011044 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011045}
11046
11047// list: '[' star_named_expressions? ']'
11048static expr_ty
11049list_rule(Parser *p)
11050{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011051 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011054 return NULL;
11055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011056 expr_ty _res = NULL;
11057 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011058 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11059 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011060 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011061 return NULL;
11062 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011063 int _start_lineno = p->tokens[_mark]->lineno;
11064 UNUSED(_start_lineno); // Only used by EXTRA macro
11065 int _start_col_offset = p->tokens[_mark]->col_offset;
11066 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011067 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011068 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011069 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011070 return NULL;
11071 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011072 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011073 Token * _literal;
11074 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011075 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011076 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011077 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011078 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011079 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011080 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011081 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011082 )
11083 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011084 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 +010011085 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11086 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011088 return NULL;
11089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011090 int _end_lineno = _token->end_lineno;
11091 UNUSED(_end_lineno); // Only used by EXTRA macro
11092 int _end_col_offset = _token->end_col_offset;
11093 UNUSED(_end_col_offset); // Only used by EXTRA macro
11094 _res = _Py_List ( a , Load , EXTRA );
11095 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011096 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011098 return NULL;
11099 }
11100 goto done;
11101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011102 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011103 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011106 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011107 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011108 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011109 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011110}
11111
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011112// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011113static expr_ty
11114listcomp_rule(Parser *p)
11115{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011116 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011119 return NULL;
11120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011121 expr_ty _res = NULL;
11122 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011123 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011126 return NULL;
11127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011128 int _start_lineno = p->tokens[_mark]->lineno;
11129 UNUSED(_start_lineno); // Only used by EXTRA macro
11130 int _start_col_offset = p->tokens[_mark]->col_offset;
11131 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011132 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011135 return NULL;
11136 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011137 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11138 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011139 Token * _literal;
11140 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011141 expr_ty a;
11142 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011143 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011144 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011145 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011146 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011147 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011148 (_cut_var = 1)
11149 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011150 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011151 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011152 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011153 )
11154 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011155 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 +010011156 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11157 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011159 return NULL;
11160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011161 int _end_lineno = _token->end_lineno;
11162 UNUSED(_end_lineno); // Only used by EXTRA macro
11163 int _end_col_offset = _token->end_col_offset;
11164 UNUSED(_end_col_offset); // Only used by EXTRA macro
11165 _res = _Py_ListComp ( a , b , EXTRA );
11166 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011167 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011169 return NULL;
11170 }
11171 goto done;
11172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011173 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011174 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11176 if (_cut_var) {
11177 D(p->level--);
11178 return NULL;
11179 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011180 }
11181 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011184 return NULL;
11185 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011186 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011187 void *invalid_comprehension_var;
11188 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011189 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011190 )
11191 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011192 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011193 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011194 goto done;
11195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011196 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011197 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011200 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011201 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011202 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011203 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011204}
11205
11206// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11207static expr_ty
11208tuple_rule(Parser *p)
11209{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011210 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011213 return NULL;
11214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011215 expr_ty _res = NULL;
11216 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011217 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11218 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011219 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011220 return NULL;
11221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011222 int _start_lineno = p->tokens[_mark]->lineno;
11223 UNUSED(_start_lineno); // Only used by EXTRA macro
11224 int _start_col_offset = p->tokens[_mark]->col_offset;
11225 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011226 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011227 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011228 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011229 return NULL;
11230 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011231 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 +010011232 Token * _literal;
11233 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011234 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011235 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011236 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011237 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011238 (a = _tmp_101_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011239 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011240 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011241 )
11242 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011243 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 +010011244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11245 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011247 return NULL;
11248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011249 int _end_lineno = _token->end_lineno;
11250 UNUSED(_end_lineno); // Only used by EXTRA macro
11251 int _end_col_offset = _token->end_col_offset;
11252 UNUSED(_end_col_offset); // Only used by EXTRA macro
11253 _res = _Py_Tuple ( a , Load , EXTRA );
11254 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011255 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011256 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011257 return NULL;
11258 }
11259 goto done;
11260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011262 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011265 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011266 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011267 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011268 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011269}
11270
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011271// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011272static expr_ty
11273group_rule(Parser *p)
11274{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011275 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011276 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011278 return NULL;
11279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011280 expr_ty _res = NULL;
11281 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011282 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011284 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011285 return NULL;
11286 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011287 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 +010011288 Token * _literal;
11289 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011290 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011291 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011292 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011293 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011294 (a = _tmp_102_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011295 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011296 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 )
11298 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011299 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 +010011300 _res = a;
11301 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011302 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011303 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011304 return NULL;
11305 }
11306 goto done;
11307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011308 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011309 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011311 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011312 { // invalid_group
11313 if (p->error_indicator) {
11314 D(p->level--);
11315 return NULL;
11316 }
11317 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11318 void *invalid_group_var;
11319 if (
11320 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11321 )
11322 {
11323 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11324 _res = invalid_group_var;
11325 goto done;
11326 }
11327 p->mark = _mark;
11328 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011331 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011332 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011333 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011334 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011335}
11336
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011337// genexp: '(' expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011338static expr_ty
11339genexp_rule(Parser *p)
11340{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011341 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011342 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011343 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344 return NULL;
11345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011346 expr_ty _res = NULL;
11347 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011348 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11349 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011351 return NULL;
11352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011353 int _start_lineno = p->tokens[_mark]->lineno;
11354 UNUSED(_start_lineno); // Only used by EXTRA macro
11355 int _start_col_offset = p->tokens[_mark]->col_offset;
11356 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011357 { // '(' expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011359 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011360 return NULL;
11361 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011362 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11363 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011364 Token * _literal;
11365 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011366 expr_ty a;
11367 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011368 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011369 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011370 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011371 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011372 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011373 (_cut_var = 1)
11374 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011375 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011376 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011377 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011378 )
11379 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011380 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011381 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11382 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011384 return NULL;
11385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011386 int _end_lineno = _token->end_lineno;
11387 UNUSED(_end_lineno); // Only used by EXTRA macro
11388 int _end_col_offset = _token->end_col_offset;
11389 UNUSED(_end_col_offset); // Only used by EXTRA macro
11390 _res = _Py_GeneratorExp ( a , b , EXTRA );
11391 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011392 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011394 return NULL;
11395 }
11396 goto done;
11397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011398 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011399 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11401 if (_cut_var) {
11402 D(p->level--);
11403 return NULL;
11404 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011405 }
11406 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011408 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011409 return NULL;
11410 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011411 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011412 void *invalid_comprehension_var;
11413 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011414 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011415 )
11416 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011417 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011418 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011419 goto done;
11420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011421 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011422 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011425 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011426 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011427 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011428 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011429}
11430
11431// set: '{' expressions_list '}'
11432static expr_ty
11433set_rule(Parser *p)
11434{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011435 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011436 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011437 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011438 return NULL;
11439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011440 expr_ty _res = NULL;
11441 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011442 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011444 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011445 return NULL;
11446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011447 int _start_lineno = p->tokens[_mark]->lineno;
11448 UNUSED(_start_lineno); // Only used by EXTRA macro
11449 int _start_col_offset = p->tokens[_mark]->col_offset;
11450 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011451 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011453 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011454 return NULL;
11455 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011456 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011457 Token * _literal;
11458 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011459 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011460 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011461 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011462 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011463 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011464 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011465 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011466 )
11467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011468 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011469 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11470 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011472 return NULL;
11473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011474 int _end_lineno = _token->end_lineno;
11475 UNUSED(_end_lineno); // Only used by EXTRA macro
11476 int _end_col_offset = _token->end_col_offset;
11477 UNUSED(_end_col_offset); // Only used by EXTRA macro
11478 _res = _Py_Set ( a , EXTRA );
11479 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011480 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011482 return NULL;
11483 }
11484 goto done;
11485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011486 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011487 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011490 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011491 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011492 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011493 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011494}
11495
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011496// setcomp: '{' expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011497static expr_ty
11498setcomp_rule(Parser *p)
11499{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011500 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011501 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503 return NULL;
11504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011505 expr_ty _res = NULL;
11506 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011507 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11508 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011510 return NULL;
11511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011512 int _start_lineno = p->tokens[_mark]->lineno;
11513 UNUSED(_start_lineno); // Only used by EXTRA macro
11514 int _start_col_offset = p->tokens[_mark]->col_offset;
11515 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011516 { // '{' expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011518 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011519 return NULL;
11520 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011521 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11522 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011523 Token * _literal;
11524 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011525 expr_ty a;
11526 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011527 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011528 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011530 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011531 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011532 (_cut_var = 1)
11533 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011534 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011535 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011536 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011537 )
11538 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011539 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011540 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11541 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011543 return NULL;
11544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011545 int _end_lineno = _token->end_lineno;
11546 UNUSED(_end_lineno); // Only used by EXTRA macro
11547 int _end_col_offset = _token->end_col_offset;
11548 UNUSED(_end_col_offset); // Only used by EXTRA macro
11549 _res = _Py_SetComp ( a , b , EXTRA );
11550 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011551 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011553 return NULL;
11554 }
11555 goto done;
11556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011557 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011558 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11560 if (_cut_var) {
11561 D(p->level--);
11562 return NULL;
11563 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011564 }
11565 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011567 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011568 return NULL;
11569 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011570 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011571 void *invalid_comprehension_var;
11572 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011573 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011574 )
11575 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011576 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011577 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011578 goto done;
11579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011580 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011581 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011584 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011585 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011586 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011587 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011588}
11589
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011590// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011591static expr_ty
11592dict_rule(Parser *p)
11593{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011594 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011597 return NULL;
11598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011599 expr_ty _res = NULL;
11600 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011601 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11602 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011604 return NULL;
11605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011606 int _start_lineno = p->tokens[_mark]->lineno;
11607 UNUSED(_start_lineno); // Only used by EXTRA macro
11608 int _start_col_offset = p->tokens[_mark]->col_offset;
11609 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011610 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011611 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011612 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011613 return NULL;
11614 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011615 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011616 Token * _literal;
11617 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011618 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011619 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011620 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011621 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011622 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011623 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011624 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011625 )
11626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011627 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 +010011628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11629 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011631 return NULL;
11632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011633 int _end_lineno = _token->end_lineno;
11634 UNUSED(_end_lineno); // Only used by EXTRA macro
11635 int _end_col_offset = _token->end_col_offset;
11636 UNUSED(_end_col_offset); // Only used by EXTRA macro
11637 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011641 return NULL;
11642 }
11643 goto done;
11644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011646 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011649 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011650 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011651 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011652 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011653}
11654
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011655// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011656static expr_ty
11657dictcomp_rule(Parser *p)
11658{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011659 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011660 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011662 return NULL;
11663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011664 expr_ty _res = NULL;
11665 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011666 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011669 return NULL;
11670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011671 int _start_lineno = p->tokens[_mark]->lineno;
11672 UNUSED(_start_lineno); // Only used by EXTRA macro
11673 int _start_col_offset = p->tokens[_mark]->col_offset;
11674 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011675 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011678 return NULL;
11679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011680 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 +010011681 Token * _literal;
11682 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011683 KeyValuePair* a;
11684 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011685 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011686 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011687 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011688 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011690 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011691 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011692 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011693 )
11694 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011695 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 +010011696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11697 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011699 return NULL;
11700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011701 int _end_lineno = _token->end_lineno;
11702 UNUSED(_end_lineno); // Only used by EXTRA macro
11703 int _end_col_offset = _token->end_col_offset;
11704 UNUSED(_end_col_offset); // Only used by EXTRA macro
11705 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11706 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011707 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011709 return NULL;
11710 }
11711 goto done;
11712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011714 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011716 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011717 { // invalid_dict_comprehension
11718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011719 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011720 return NULL;
11721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011722 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 -070011723 void *invalid_dict_comprehension_var;
11724 if (
11725 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11726 )
11727 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011728 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 -070011729 _res = invalid_dict_comprehension_var;
11730 goto done;
11731 }
11732 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011733 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011736 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011737 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011738 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011739 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011740}
11741
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011742// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011743static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011744double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011745{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011746 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011747 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011749 return NULL;
11750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011751 asdl_seq* _res = NULL;
11752 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011753 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011754 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011755 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011756 return NULL;
11757 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011758 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 +010011759 void *_opt_var;
11760 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011761 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011762 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011763 (a = _gather_103_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011764 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011765 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011766 )
11767 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011768 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 +010011769 _res = a;
11770 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011771 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011773 return NULL;
11774 }
11775 goto done;
11776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011777 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011778 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011781 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011782 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011783 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011784 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011785}
11786
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011787// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011788static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011789double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011790{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011791 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794 return NULL;
11795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011796 KeyValuePair* _res = NULL;
11797 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011798 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011801 return NULL;
11802 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011803 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 +010011804 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011805 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011806 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011807 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011808 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011809 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011810 )
11811 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011812 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 +010011813 _res = _PyPegen_key_value_pair ( p , NULL , a );
11814 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011815 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011817 return NULL;
11818 }
11819 goto done;
11820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011821 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011822 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011824 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011825 { // kvpair
11826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011827 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011828 return NULL;
11829 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011830 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 -070011831 KeyValuePair* kvpair_var;
11832 if (
11833 (kvpair_var = kvpair_rule(p)) // kvpair
11834 )
11835 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011836 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 -070011837 _res = kvpair_var;
11838 goto done;
11839 }
11840 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011841 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011843 }
11844 _res = NULL;
11845 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011846 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011847 return _res;
11848}
11849
11850// kvpair: expression ':' expression
11851static KeyValuePair*
11852kvpair_rule(Parser *p)
11853{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011854 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011856 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011857 return NULL;
11858 }
11859 KeyValuePair* _res = NULL;
11860 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011861 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011862 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011863 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011864 return NULL;
11865 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011866 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011867 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011868 expr_ty a;
11869 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011870 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011871 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011872 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011873 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011874 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011875 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011876 )
11877 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011878 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011879 _res = _PyPegen_key_value_pair ( p , a , b );
11880 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011881 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011883 return NULL;
11884 }
11885 goto done;
11886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011887 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011888 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011891 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011892 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011893 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011894 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011895}
11896
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011897// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011898static asdl_seq*
11899for_if_clauses_rule(Parser *p)
11900{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011901 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011904 return NULL;
11905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011906 asdl_seq* _res = NULL;
11907 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011908 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011911 return NULL;
11912 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011913 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011914 asdl_seq * _loop1_105_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011915 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011916 (_loop1_105_var = _loop1_105_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011917 )
11918 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011919 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011920 _res = _loop1_105_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011921 goto done;
11922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011923 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011924 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011927 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011928 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011929 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011930 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011931}
11932
11933// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011934// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11935// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11936// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011937static comprehension_ty
11938for_if_clause_rule(Parser *p)
11939{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011940 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011942 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011943 return NULL;
11944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011945 comprehension_ty _res = NULL;
11946 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011947 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011948 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011949 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011950 return NULL;
11951 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011952 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11953 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011954 Token * _keyword;
11955 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011956 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011957 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011958 expr_ty b;
11959 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011960 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011961 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011962 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011963 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011964 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011965 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011966 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011967 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011969 (_cut_var = 1)
11970 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011971 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011972 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011973 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011974 )
11975 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011976 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 +010011977 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11978 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011979 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011980 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011981 return NULL;
11982 }
11983 goto done;
11984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011985 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011986 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11988 if (_cut_var) {
11989 D(p->level--);
11990 return NULL;
11991 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011992 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011993 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011996 return NULL;
11997 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011998 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11999 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012000 Token * _keyword;
12001 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012002 expr_ty a;
12003 expr_ty b;
12004 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012005 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012006 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012007 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012008 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012009 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012010 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012011 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012012 (_cut_var = 1)
12013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012014 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012015 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012016 (c = _loop0_107_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012017 )
12018 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012019 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 +010012020 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12021 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012022 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012024 return NULL;
12025 }
12026 goto done;
12027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012028 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012029 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12031 if (_cut_var) {
12032 D(p->level--);
12033 return NULL;
12034 }
12035 }
12036 { // invalid_for_target
12037 if (p->error_indicator) {
12038 D(p->level--);
12039 return NULL;
12040 }
12041 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12042 void *invalid_for_target_var;
12043 if (
12044 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12045 )
12046 {
12047 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12048 _res = invalid_for_target_var;
12049 goto done;
12050 }
12051 p->mark = _mark;
12052 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012055 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012056 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012057 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012058 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012059}
12060
12061// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12062static expr_ty
12063yield_expr_rule(Parser *p)
12064{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012065 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012066 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012067 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012068 return NULL;
12069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012070 expr_ty _res = NULL;
12071 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012072 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12073 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012075 return NULL;
12076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012077 int _start_lineno = p->tokens[_mark]->lineno;
12078 UNUSED(_start_lineno); // Only used by EXTRA macro
12079 int _start_col_offset = p->tokens[_mark]->col_offset;
12080 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012081 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012082 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012083 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012084 return NULL;
12085 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012086 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 +010012087 Token * _keyword;
12088 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012089 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012090 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012091 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012092 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012093 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012094 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012095 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012096 )
12097 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012098 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 +010012099 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12100 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012101 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012102 return NULL;
12103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012104 int _end_lineno = _token->end_lineno;
12105 UNUSED(_end_lineno); // Only used by EXTRA macro
12106 int _end_col_offset = _token->end_col_offset;
12107 UNUSED(_end_col_offset); // Only used by EXTRA macro
12108 _res = _Py_YieldFrom ( a , EXTRA );
12109 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012110 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012112 return NULL;
12113 }
12114 goto done;
12115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012116 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012117 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012119 }
12120 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012121 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012122 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012123 return NULL;
12124 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012125 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 +010012126 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012127 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012128 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012129 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012130 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012131 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012132 )
12133 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012134 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 +010012135 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12136 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012137 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012138 return NULL;
12139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012140 int _end_lineno = _token->end_lineno;
12141 UNUSED(_end_lineno); // Only used by EXTRA macro
12142 int _end_col_offset = _token->end_col_offset;
12143 UNUSED(_end_col_offset); // Only used by EXTRA macro
12144 _res = _Py_Yield ( a , EXTRA );
12145 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012146 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012147 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012148 return NULL;
12149 }
12150 goto done;
12151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012152 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012153 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012156 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012157 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012159 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012160}
12161
12162// arguments: args ','? &')' | incorrect_arguments
12163static expr_ty
12164arguments_rule(Parser *p)
12165{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012166 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012169 return NULL;
12170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012171 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012172 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12173 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012174 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012176 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012177 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012178 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012179 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012180 return NULL;
12181 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012182 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012183 void *_opt_var;
12184 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012185 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012186 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012187 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012188 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012189 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012190 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012191 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012192 )
12193 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012194 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012195 _res = a;
12196 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012197 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012198 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012199 return NULL;
12200 }
12201 goto done;
12202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012203 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012204 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012206 }
12207 { // incorrect_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012208 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012209 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012210 return NULL;
12211 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012212 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012213 void *incorrect_arguments_var;
12214 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012215 (incorrect_arguments_var = incorrect_arguments_rule(p)) // incorrect_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012216 )
12217 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012218 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012219 _res = incorrect_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012220 goto done;
12221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012222 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012223 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012226 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012227 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012228 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012229 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012230 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012231}
12232
12233// args: starred_expression [',' args] | kwargs | named_expression [',' args]
12234static expr_ty
12235args_rule(Parser *p)
12236{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012237 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012240 return NULL;
12241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012242 expr_ty _res = NULL;
12243 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012244 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012247 return NULL;
12248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012249 int _start_lineno = p->tokens[_mark]->lineno;
12250 UNUSED(_start_lineno); // Only used by EXTRA macro
12251 int _start_col_offset = p->tokens[_mark]->col_offset;
12252 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012253 { // starred_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012255 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012256 return NULL;
12257 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012258 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012259 expr_ty a;
12260 void *b;
12261 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012262 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012263 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012264 (b = _tmp_108_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012265 )
12266 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012267 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12269 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012270 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012271 return NULL;
12272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012273 int _end_lineno = _token->end_lineno;
12274 UNUSED(_end_lineno); // Only used by EXTRA macro
12275 int _end_col_offset = _token->end_col_offset;
12276 UNUSED(_end_col_offset); // Only used by EXTRA macro
12277 _res = _Py_Call ( _PyPegen_dummy_name ( p ) , ( b ) ? CHECK ( _PyPegen_seq_insert_in_front ( p , a , ( ( expr_ty ) b ) -> v . Call . args ) ) : CHECK ( _PyPegen_singleton_seq ( p , a ) ) , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
12278 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012279 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012281 return NULL;
12282 }
12283 goto done;
12284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012285 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012286 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012288 }
12289 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012292 return NULL;
12293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012294 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012295 asdl_seq* a;
12296 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012297 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012298 )
12299 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012300 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012301 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12302 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012303 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012304 return NULL;
12305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012306 int _end_lineno = _token->end_lineno;
12307 UNUSED(_end_lineno); // Only used by EXTRA macro
12308 int _end_col_offset = _token->end_col_offset;
12309 UNUSED(_end_col_offset); // Only used by EXTRA macro
12310 _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 );
12311 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012312 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012313 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012314 return NULL;
12315 }
12316 goto done;
12317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012318 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012319 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012321 }
12322 { // named_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012323 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012324 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012325 return NULL;
12326 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012327 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012328 expr_ty a;
12329 void *b;
12330 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012331 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012332 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012333 (b = _tmp_109_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012334 )
12335 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012336 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012337 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12338 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012340 return NULL;
12341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012342 int _end_lineno = _token->end_lineno;
12343 UNUSED(_end_lineno); // Only used by EXTRA macro
12344 int _end_col_offset = _token->end_col_offset;
12345 UNUSED(_end_col_offset); // Only used by EXTRA macro
12346 _res = _Py_Call ( _PyPegen_dummy_name ( p ) , ( b ) ? CHECK ( _PyPegen_seq_insert_in_front ( p , a , ( ( expr_ty ) b ) -> v . Call . args ) ) : CHECK ( _PyPegen_singleton_seq ( p , a ) ) , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
12347 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012348 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012349 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012350 return NULL;
12351 }
12352 goto done;
12353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012354 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012355 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012358 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012359 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012360 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012361 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012362}
12363
12364// kwargs:
12365// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12366// | ','.kwarg_or_starred+
12367// | ','.kwarg_or_double_starred+
12368static asdl_seq*
12369kwargs_rule(Parser *p)
12370{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012371 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012373 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012374 return NULL;
12375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012376 asdl_seq* _res = NULL;
12377 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012378 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012380 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012381 return NULL;
12382 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012383 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012384 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012385 asdl_seq * a;
12386 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012387 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012388 (a = _gather_110_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012389 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012390 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012391 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012392 (b = _gather_112_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012393 )
12394 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012395 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 +010012396 _res = _PyPegen_join_sequences ( p , a , b );
12397 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012398 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012400 return NULL;
12401 }
12402 goto done;
12403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012404 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012405 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012407 }
12408 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012411 return NULL;
12412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012413 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012414 asdl_seq * _gather_114_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012415 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012416 (_gather_114_var = _gather_114_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012417 )
12418 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012419 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012420 _res = _gather_114_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012421 goto done;
12422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012423 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012424 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012426 }
12427 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012428 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012429 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012430 return NULL;
12431 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012432 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012433 asdl_seq * _gather_116_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012434 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012435 (_gather_116_var = _gather_116_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012436 )
12437 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012438 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012439 _res = _gather_116_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012440 goto done;
12441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012442 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012443 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012446 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012447 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012448 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012449 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012450}
12451
12452// starred_expression: '*' expression
12453static expr_ty
12454starred_expression_rule(Parser *p)
12455{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012456 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012457 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012458 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012459 return NULL;
12460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012461 expr_ty _res = NULL;
12462 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012463 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12464 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012465 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012466 return NULL;
12467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012468 int _start_lineno = p->tokens[_mark]->lineno;
12469 UNUSED(_start_lineno); // Only used by EXTRA macro
12470 int _start_col_offset = p->tokens[_mark]->col_offset;
12471 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012472 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012473 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012474 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012475 return NULL;
12476 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012477 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012478 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012479 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012480 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012481 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012482 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012483 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012484 )
12485 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012486 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12488 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012489 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012490 return NULL;
12491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012492 int _end_lineno = _token->end_lineno;
12493 UNUSED(_end_lineno); // Only used by EXTRA macro
12494 int _end_col_offset = _token->end_col_offset;
12495 UNUSED(_end_col_offset); // Only used by EXTRA macro
12496 _res = _Py_Starred ( a , Load , EXTRA );
12497 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012498 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012499 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012500 return NULL;
12501 }
12502 goto done;
12503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012504 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012505 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012508 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012509 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012511 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012512}
12513
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012514// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012515static KeywordOrStarred*
12516kwarg_or_starred_rule(Parser *p)
12517{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012518 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012521 return NULL;
12522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012523 KeywordOrStarred* _res = NULL;
12524 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012525 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12526 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012527 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012528 return NULL;
12529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012530 int _start_lineno = p->tokens[_mark]->lineno;
12531 UNUSED(_start_lineno); // Only used by EXTRA macro
12532 int _start_col_offset = p->tokens[_mark]->col_offset;
12533 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012534 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012536 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012537 return NULL;
12538 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012539 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 +010012540 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012541 expr_ty a;
12542 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012543 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012544 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012545 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012546 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012547 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012548 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012549 )
12550 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012551 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 +010012552 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12553 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012555 return NULL;
12556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012557 int _end_lineno = _token->end_lineno;
12558 UNUSED(_end_lineno); // Only used by EXTRA macro
12559 int _end_col_offset = _token->end_col_offset;
12560 UNUSED(_end_col_offset); // Only used by EXTRA macro
12561 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12562 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012563 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012564 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012565 return NULL;
12566 }
12567 goto done;
12568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012569 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012570 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012572 }
12573 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012574 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012575 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012576 return NULL;
12577 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012578 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 +010012579 expr_ty a;
12580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012581 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012582 )
12583 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012584 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 +010012585 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12586 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012587 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012588 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012589 return NULL;
12590 }
12591 goto done;
12592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012593 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012594 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012596 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012597 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012598 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012599 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012600 return NULL;
12601 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012602 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 +030012603 void *invalid_kwarg_var;
12604 if (
12605 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12606 )
12607 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012608 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 +010012609 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012610 goto done;
12611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012612 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012613 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012616 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012617 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012618 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012619 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012620}
12621
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012622// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012623static KeywordOrStarred*
12624kwarg_or_double_starred_rule(Parser *p)
12625{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012626 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012628 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012629 return NULL;
12630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012631 KeywordOrStarred* _res = NULL;
12632 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012633 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12634 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012635 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012636 return NULL;
12637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012638 int _start_lineno = p->tokens[_mark]->lineno;
12639 UNUSED(_start_lineno); // Only used by EXTRA macro
12640 int _start_col_offset = p->tokens[_mark]->col_offset;
12641 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012642 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012644 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012645 return NULL;
12646 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012647 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 +010012648 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012649 expr_ty a;
12650 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012651 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012652 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012653 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012654 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012655 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012656 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012657 )
12658 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012659 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 +010012660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12661 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012663 return NULL;
12664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012665 int _end_lineno = _token->end_lineno;
12666 UNUSED(_end_lineno); // Only used by EXTRA macro
12667 int _end_col_offset = _token->end_col_offset;
12668 UNUSED(_end_col_offset); // Only used by EXTRA macro
12669 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12670 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012671 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012673 return NULL;
12674 }
12675 goto done;
12676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012678 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012680 }
12681 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012683 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012684 return NULL;
12685 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012686 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 +010012687 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012688 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012689 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012690 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012691 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012692 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012693 )
12694 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012695 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 +010012696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12697 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012699 return NULL;
12700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012701 int _end_lineno = _token->end_lineno;
12702 UNUSED(_end_lineno); // Only used by EXTRA macro
12703 int _end_col_offset = _token->end_col_offset;
12704 UNUSED(_end_col_offset); // Only used by EXTRA macro
12705 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12706 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012707 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012709 return NULL;
12710 }
12711 goto done;
12712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012714 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012716 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012717 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012720 return NULL;
12721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012722 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 +030012723 void *invalid_kwarg_var;
12724 if (
12725 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12726 )
12727 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012728 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 +010012729 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012730 goto done;
12731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012732 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012733 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012736 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012737 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012738 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012739 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012740}
12741
12742// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12743static expr_ty
12744star_targets_rule(Parser *p)
12745{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012746 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012747 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012749 return NULL;
12750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012751 expr_ty _res = NULL;
12752 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012753 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12754 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012756 return NULL;
12757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012758 int _start_lineno = p->tokens[_mark]->lineno;
12759 UNUSED(_start_lineno); // Only used by EXTRA macro
12760 int _start_col_offset = p->tokens[_mark]->col_offset;
12761 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012762 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012763 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012764 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012765 return NULL;
12766 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012767 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012768 expr_ty a;
12769 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012770 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012771 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012772 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012773 )
12774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012775 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 +010012776 _res = a;
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 !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012787 }
12788 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012789 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012790 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012791 return NULL;
12792 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012793 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 +010012794 void *_opt_var;
12795 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012796 expr_ty a;
12797 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012798 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012799 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012800 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012801 (b = _loop0_118_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012802 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012803 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012804 )
12805 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012806 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 +010012807 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12808 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012809 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012810 return NULL;
12811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012812 int _end_lineno = _token->end_lineno;
12813 UNUSED(_end_lineno); // Only used by EXTRA macro
12814 int _end_col_offset = _token->end_col_offset;
12815 UNUSED(_end_col_offset); // Only used by EXTRA macro
12816 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12817 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012818 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012820 return NULL;
12821 }
12822 goto done;
12823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012825 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012828 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012829 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012830 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012831 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012832}
12833
12834// star_targets_seq: ','.star_target+ ','?
12835static asdl_seq*
12836star_targets_seq_rule(Parser *p)
12837{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012838 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012841 return NULL;
12842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012843 asdl_seq* _res = NULL;
12844 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012845 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012848 return NULL;
12849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012850 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 +010012851 void *_opt_var;
12852 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012853 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012854 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012855 (a = _gather_119_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012856 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012857 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012858 )
12859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012860 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 +010012861 _res = a;
12862 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012865 return NULL;
12866 }
12867 goto done;
12868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012870 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012873 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012874 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012875 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012876 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012877}
12878
12879// star_target:
12880// | '*' (!'*' star_target)
12881// | t_primary '.' NAME !t_lookahead
12882// | t_primary '[' slices ']' !t_lookahead
12883// | star_atom
12884static expr_ty
12885star_target_rule(Parser *p)
12886{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012887 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012889 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012890 return NULL;
12891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012892 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012893 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12894 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012895 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012897 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012898 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12899 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012901 return NULL;
12902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012903 int _start_lineno = p->tokens[_mark]->lineno;
12904 UNUSED(_start_lineno); // Only used by EXTRA macro
12905 int _start_col_offset = p->tokens[_mark]->col_offset;
12906 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012907 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012908 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012909 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012910 return NULL;
12911 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012912 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012913 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012914 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012915 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012916 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012917 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012918 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012919 )
12920 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012921 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 +010012922 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12923 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012925 return NULL;
12926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012927 int _end_lineno = _token->end_lineno;
12928 UNUSED(_end_lineno); // Only used by EXTRA macro
12929 int _end_col_offset = _token->end_col_offset;
12930 UNUSED(_end_col_offset); // Only used by EXTRA macro
12931 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12932 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012933 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012934 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012935 return NULL;
12936 }
12937 goto done;
12938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012939 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012940 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012942 }
12943 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012946 return NULL;
12947 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012948 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 +010012949 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012950 expr_ty a;
12951 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012952 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012953 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012954 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012955 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012956 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012957 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012958 &&
12959 _PyPegen_lookahead(0, t_lookahead_rule, p)
12960 )
12961 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012962 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 +010012963 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12964 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012965 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012966 return NULL;
12967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012968 int _end_lineno = _token->end_lineno;
12969 UNUSED(_end_lineno); // Only used by EXTRA macro
12970 int _end_col_offset = _token->end_col_offset;
12971 UNUSED(_end_col_offset); // Only used by EXTRA macro
12972 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12973 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012974 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012975 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012976 return NULL;
12977 }
12978 goto done;
12979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012980 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012981 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012983 }
12984 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012986 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012987 return NULL;
12988 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012989 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 +010012990 Token * _literal;
12991 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012992 expr_ty a;
12993 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012994 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012995 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012996 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012997 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012998 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012999 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013000 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013001 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013002 &&
13003 _PyPegen_lookahead(0, t_lookahead_rule, p)
13004 )
13005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013006 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 +010013007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13008 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013010 return NULL;
13011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013012 int _end_lineno = _token->end_lineno;
13013 UNUSED(_end_lineno); // Only used by EXTRA macro
13014 int _end_col_offset = _token->end_col_offset;
13015 UNUSED(_end_col_offset); // Only used by EXTRA macro
13016 _res = _Py_Subscript ( a , b , Store , EXTRA );
13017 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013018 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013020 return NULL;
13021 }
13022 goto done;
13023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013024 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013025 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013027 }
13028 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013030 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013031 return NULL;
13032 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013033 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013034 expr_ty star_atom_var;
13035 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013036 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013037 )
13038 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013039 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 +010013040 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013041 goto done;
13042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013043 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013044 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013047 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013048 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013049 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013050 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013051 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013052}
13053
13054// star_atom:
13055// | NAME
13056// | '(' star_target ')'
13057// | '(' star_targets_seq? ')'
13058// | '[' star_targets_seq? ']'
13059static expr_ty
13060star_atom_rule(Parser *p)
13061{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013062 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013063 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013064 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013065 return NULL;
13066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013067 expr_ty _res = NULL;
13068 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013069 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13070 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013071 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013072 return NULL;
13073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013074 int _start_lineno = p->tokens[_mark]->lineno;
13075 UNUSED(_start_lineno); // Only used by EXTRA macro
13076 int _start_col_offset = p->tokens[_mark]->col_offset;
13077 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013078 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013080 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013081 return NULL;
13082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013083 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013084 expr_ty a;
13085 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013086 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013087 )
13088 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013089 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013090 _res = _PyPegen_set_expr_context ( p , a , Store );
13091 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013092 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013093 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013094 return NULL;
13095 }
13096 goto done;
13097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013098 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013099 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013101 }
13102 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013104 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013105 return NULL;
13106 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013107 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013108 Token * _literal;
13109 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013110 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013111 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013112 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013113 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013114 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013115 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013116 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 )
13118 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013119 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013120 _res = _PyPegen_set_expr_context ( p , a , Store );
13121 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013122 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013124 return NULL;
13125 }
13126 goto done;
13127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013128 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013129 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013131 }
13132 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013135 return NULL;
13136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013137 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 +010013138 Token * _literal;
13139 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013140 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013141 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013142 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013143 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013144 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013145 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013146 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013147 )
13148 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013149 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 +010013150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13151 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013152 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013153 return NULL;
13154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013155 int _end_lineno = _token->end_lineno;
13156 UNUSED(_end_lineno); // Only used by EXTRA macro
13157 int _end_col_offset = _token->end_col_offset;
13158 UNUSED(_end_col_offset); // Only used by EXTRA macro
13159 _res = _Py_Tuple ( a , Store , EXTRA );
13160 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013161 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013163 return NULL;
13164 }
13165 goto done;
13166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013167 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013168 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013170 }
13171 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013173 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013174 return NULL;
13175 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013176 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 +010013177 Token * _literal;
13178 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013179 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013180 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013181 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013182 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013183 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013184 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013185 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013186 )
13187 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013188 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 +010013189 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13190 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013191 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013192 return NULL;
13193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013194 int _end_lineno = _token->end_lineno;
13195 UNUSED(_end_lineno); // Only used by EXTRA macro
13196 int _end_col_offset = _token->end_col_offset;
13197 UNUSED(_end_col_offset); // Only used by EXTRA macro
13198 _res = _Py_List ( a , Store , EXTRA );
13199 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013200 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013201 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013202 return NULL;
13203 }
13204 goto done;
13205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013206 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013207 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013210 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013211 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013212 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013213 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013214}
13215
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013216// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013217static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013218single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013219{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013220 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013222 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013223 return NULL;
13224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013225 expr_ty _res = NULL;
13226 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013227 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013228 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013229 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013230 return NULL;
13231 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013232 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 +030013233 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013234 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013235 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013236 )
13237 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013238 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 +030013239 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013240 goto done;
13241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013243 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013245 }
13246 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013249 return NULL;
13250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013251 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013252 expr_ty a;
13253 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013254 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013255 )
13256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013257 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013258 _res = _PyPegen_set_expr_context ( p , a , Store );
13259 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013260 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013261 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013262 return NULL;
13263 }
13264 goto done;
13265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013266 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013267 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013269 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013270 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013271 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013272 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013273 return NULL;
13274 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013275 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013276 Token * _literal;
13277 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013278 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013279 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013280 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013281 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013282 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013283 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013284 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013285 )
13286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013287 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 +010013288 _res = a;
13289 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013292 return NULL;
13293 }
13294 goto done;
13295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013297 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013300 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013303 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013304}
13305
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013306// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013307// | t_primary '.' NAME !t_lookahead
13308// | t_primary '[' slices ']' !t_lookahead
13309static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013310single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013311{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013312 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013313 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013315 return NULL;
13316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013317 expr_ty _res = NULL;
13318 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013319 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13320 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013321 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013322 return NULL;
13323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013324 int _start_lineno = p->tokens[_mark]->lineno;
13325 UNUSED(_start_lineno); // Only used by EXTRA macro
13326 int _start_col_offset = p->tokens[_mark]->col_offset;
13327 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013328 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013329 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013330 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013331 return NULL;
13332 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013333 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 +010013334 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013335 expr_ty a;
13336 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013337 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013338 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013339 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013340 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013341 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013342 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013343 &&
13344 _PyPegen_lookahead(0, t_lookahead_rule, p)
13345 )
13346 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013347 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 +010013348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13349 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013351 return NULL;
13352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013353 int _end_lineno = _token->end_lineno;
13354 UNUSED(_end_lineno); // Only used by EXTRA macro
13355 int _end_col_offset = _token->end_col_offset;
13356 UNUSED(_end_col_offset); // Only used by EXTRA macro
13357 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13358 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013359 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013361 return NULL;
13362 }
13363 goto done;
13364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013365 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013366 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013368 }
13369 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013370 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013371 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013372 return NULL;
13373 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013374 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 +010013375 Token * _literal;
13376 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013377 expr_ty a;
13378 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013379 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013380 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013381 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013382 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013383 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013384 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013385 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013386 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013387 &&
13388 _PyPegen_lookahead(0, t_lookahead_rule, p)
13389 )
13390 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013391 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 +010013392 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13393 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013395 return NULL;
13396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013397 int _end_lineno = _token->end_lineno;
13398 UNUSED(_end_lineno); // Only used by EXTRA macro
13399 int _end_col_offset = _token->end_col_offset;
13400 UNUSED(_end_col_offset); // Only used by EXTRA macro
13401 _res = _Py_Subscript ( a , b , Store , EXTRA );
13402 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013403 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013405 return NULL;
13406 }
13407 goto done;
13408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013409 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013410 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013413 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013414 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013415 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013416 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013417}
13418
13419// del_targets: ','.del_target+ ','?
13420static asdl_seq*
13421del_targets_rule(Parser *p)
13422{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013423 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013424 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013426 return NULL;
13427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013428 asdl_seq* _res = NULL;
13429 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013430 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013431 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013432 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013433 return NULL;
13434 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013435 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013436 void *_opt_var;
13437 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013438 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013439 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013440 (a = _gather_122_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013441 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013442 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013443 )
13444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013445 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 +010013446 _res = a;
13447 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013448 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013450 return NULL;
13451 }
13452 goto done;
13453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013454 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013455 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013458 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013459 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013460 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013461 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013462}
13463
13464// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013465// | t_primary '.' NAME !t_lookahead
13466// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013467// | del_t_atom
13468static expr_ty
13469del_target_rule(Parser *p)
13470{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013471 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013472 if (p->error_indicator) {
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 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013477 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13478 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013479 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013481 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013482 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13483 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013485 return NULL;
13486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013487 int _start_lineno = p->tokens[_mark]->lineno;
13488 UNUSED(_start_lineno); // Only used by EXTRA macro
13489 int _start_col_offset = p->tokens[_mark]->col_offset;
13490 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013491 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013492 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013493 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013494 return NULL;
13495 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013496 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 +010013497 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013498 expr_ty a;
13499 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013500 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013501 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013502 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013503 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013504 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013505 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013506 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013507 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013508 )
13509 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013510 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 +010013511 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13512 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013513 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013514 return NULL;
13515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013516 int _end_lineno = _token->end_lineno;
13517 UNUSED(_end_lineno); // Only used by EXTRA macro
13518 int _end_col_offset = _token->end_col_offset;
13519 UNUSED(_end_col_offset); // Only used by EXTRA macro
13520 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13521 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013522 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013523 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013524 return NULL;
13525 }
13526 goto done;
13527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013528 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013529 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013531 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013532 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013533 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013534 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013535 return NULL;
13536 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013537 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 +010013538 Token * _literal;
13539 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013540 expr_ty a;
13541 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013542 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013543 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013544 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013545 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013546 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013547 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013548 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013549 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013550 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013551 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013552 )
13553 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013554 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 +010013555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13556 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013557 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013558 return NULL;
13559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013560 int _end_lineno = _token->end_lineno;
13561 UNUSED(_end_lineno); // Only used by EXTRA macro
13562 int _end_col_offset = _token->end_col_offset;
13563 UNUSED(_end_col_offset); // Only used by EXTRA macro
13564 _res = _Py_Subscript ( a , b , Del , EXTRA );
13565 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013566 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013568 return NULL;
13569 }
13570 goto done;
13571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013572 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013573 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013575 }
13576 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013578 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013579 return NULL;
13580 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013581 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 +010013582 expr_ty del_t_atom_var;
13583 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013584 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013585 )
13586 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013587 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 +010013588 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013589 goto done;
13590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013591 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013592 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013595 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013596 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013597 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013598 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013599 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013600}
13601
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013602// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013603static expr_ty
13604del_t_atom_rule(Parser *p)
13605{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013606 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013608 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013609 return NULL;
13610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013611 expr_ty _res = NULL;
13612 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013613 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13614 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013615 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013616 return NULL;
13617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013618 int _start_lineno = p->tokens[_mark]->lineno;
13619 UNUSED(_start_lineno); // Only used by EXTRA macro
13620 int _start_col_offset = p->tokens[_mark]->col_offset;
13621 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013622 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013624 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013625 return NULL;
13626 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013627 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013628 expr_ty a;
13629 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013630 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013631 )
13632 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013633 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 +010013634 _res = _PyPegen_set_expr_context ( p , a , Del );
13635 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013636 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013637 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013638 return NULL;
13639 }
13640 goto done;
13641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013642 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013643 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013645 }
13646 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013647 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013648 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013649 return NULL;
13650 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013651 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013652 Token * _literal;
13653 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013654 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013655 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013656 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013657 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013658 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013659 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013660 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013661 )
13662 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013663 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013664 _res = _PyPegen_set_expr_context ( p , a , Del );
13665 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013666 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013668 return NULL;
13669 }
13670 goto done;
13671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013672 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013673 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013675 }
13676 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013678 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013679 return NULL;
13680 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013681 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 +010013682 Token * _literal;
13683 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013684 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013685 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013686 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013687 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013688 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013689 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013690 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013691 )
13692 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013693 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 +010013694 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13695 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013697 return NULL;
13698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013699 int _end_lineno = _token->end_lineno;
13700 UNUSED(_end_lineno); // Only used by EXTRA macro
13701 int _end_col_offset = _token->end_col_offset;
13702 UNUSED(_end_col_offset); // Only used by EXTRA macro
13703 _res = _Py_Tuple ( a , Del , EXTRA );
13704 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013705 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013707 return NULL;
13708 }
13709 goto done;
13710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013711 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013712 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013714 }
13715 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013717 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013718 return NULL;
13719 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013720 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 +010013721 Token * _literal;
13722 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013723 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013724 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013725 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013726 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013727 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013728 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013729 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013730 )
13731 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013732 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 +010013733 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13734 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013736 return NULL;
13737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013738 int _end_lineno = _token->end_lineno;
13739 UNUSED(_end_lineno); // Only used by EXTRA macro
13740 int _end_col_offset = _token->end_col_offset;
13741 UNUSED(_end_col_offset); // Only used by EXTRA macro
13742 _res = _Py_List ( a , Del , EXTRA );
13743 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013744 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013746 return NULL;
13747 }
13748 goto done;
13749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013750 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013751 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013754 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013755 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013756 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013757 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013758}
13759
13760// targets: ','.target+ ','?
13761static asdl_seq*
13762targets_rule(Parser *p)
13763{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013764 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013766 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013767 return NULL;
13768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013769 asdl_seq* _res = NULL;
13770 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013771 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013774 return NULL;
13775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013776 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013777 void *_opt_var;
13778 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013779 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013780 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013781 (a = _gather_124_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013782 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013783 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013784 )
13785 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013786 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013787 _res = a;
13788 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013789 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013791 return NULL;
13792 }
13793 goto done;
13794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013795 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013796 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013799 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013800 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013801 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013802 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013803}
13804
13805// target:
13806// | t_primary '.' NAME !t_lookahead
13807// | t_primary '[' slices ']' !t_lookahead
13808// | t_atom
13809static expr_ty
13810target_rule(Parser *p)
13811{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013812 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013813 if (p->error_indicator) {
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 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013818 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13819 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013820 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013822 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013823 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13824 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013826 return NULL;
13827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013828 int _start_lineno = p->tokens[_mark]->lineno;
13829 UNUSED(_start_lineno); // Only used by EXTRA macro
13830 int _start_col_offset = p->tokens[_mark]->col_offset;
13831 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013832 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013834 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013835 return NULL;
13836 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013837 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 +010013838 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013839 expr_ty a;
13840 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013841 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013842 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013843 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013844 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013845 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013846 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013847 &&
13848 _PyPegen_lookahead(0, t_lookahead_rule, p)
13849 )
13850 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013851 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 +010013852 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13853 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013854 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013855 return NULL;
13856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013857 int _end_lineno = _token->end_lineno;
13858 UNUSED(_end_lineno); // Only used by EXTRA macro
13859 int _end_col_offset = _token->end_col_offset;
13860 UNUSED(_end_col_offset); // Only used by EXTRA macro
13861 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13862 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013865 return NULL;
13866 }
13867 goto done;
13868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013870 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013872 }
13873 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013876 return NULL;
13877 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013878 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 +010013879 Token * _literal;
13880 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013881 expr_ty a;
13882 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013884 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013885 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013886 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013887 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013888 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013889 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013890 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013891 &&
13892 _PyPegen_lookahead(0, t_lookahead_rule, p)
13893 )
13894 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013895 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 +010013896 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13897 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013899 return NULL;
13900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013901 int _end_lineno = _token->end_lineno;
13902 UNUSED(_end_lineno); // Only used by EXTRA macro
13903 int _end_col_offset = _token->end_col_offset;
13904 UNUSED(_end_col_offset); // Only used by EXTRA macro
13905 _res = _Py_Subscript ( a , b , Store , EXTRA );
13906 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013907 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013909 return NULL;
13910 }
13911 goto done;
13912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013914 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013916 }
13917 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013920 return NULL;
13921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013922 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013923 expr_ty t_atom_var;
13924 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013925 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013926 )
13927 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013928 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013929 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013930 goto done;
13931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013932 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013933 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013936 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013937 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013938 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013939 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013940 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013941}
13942
13943// Left-recursive
13944// t_primary:
13945// | t_primary '.' NAME &t_lookahead
13946// | t_primary '[' slices ']' &t_lookahead
13947// | t_primary genexp &t_lookahead
13948// | t_primary '(' arguments? ')' &t_lookahead
13949// | atom &t_lookahead
13950static expr_ty t_primary_raw(Parser *);
13951static expr_ty
13952t_primary_rule(Parser *p)
13953{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013954 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013955 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013956 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13957 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013958 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013960 int _mark = p->mark;
13961 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013962 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013963 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013964 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013966 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013968 p->mark = _mark;
13969 void *_raw = t_primary_raw(p);
13970 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013971 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013972 _resmark = p->mark;
13973 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013975 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013977 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013978}
13979static expr_ty
13980t_primary_raw(Parser *p)
13981{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013982 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013984 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013985 return NULL;
13986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013987 expr_ty _res = NULL;
13988 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013989 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13990 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013991 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013992 return NULL;
13993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013994 int _start_lineno = p->tokens[_mark]->lineno;
13995 UNUSED(_start_lineno); // Only used by EXTRA macro
13996 int _start_col_offset = p->tokens[_mark]->col_offset;
13997 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013998 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014001 return NULL;
14002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014003 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 +010014004 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014005 expr_ty a;
14006 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014007 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014008 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014009 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014010 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014011 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014012 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014013 &&
14014 _PyPegen_lookahead(1, t_lookahead_rule, p)
14015 )
14016 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014017 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 +010014018 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14019 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014021 return NULL;
14022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014023 int _end_lineno = _token->end_lineno;
14024 UNUSED(_end_lineno); // Only used by EXTRA macro
14025 int _end_col_offset = _token->end_col_offset;
14026 UNUSED(_end_col_offset); // Only used by EXTRA macro
14027 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14028 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014029 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014030 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014031 return NULL;
14032 }
14033 goto done;
14034 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014035 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014036 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014038 }
14039 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014041 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014042 return NULL;
14043 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014044 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 +010014045 Token * _literal;
14046 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014047 expr_ty a;
14048 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014049 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014050 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014051 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014052 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014053 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014054 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014055 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014056 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
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 '[' slices ']' &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_Subscript ( a , b , Load , 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 '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014082 }
14083 { // t_primary genexp &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 genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014089 expr_ty a;
14090 expr_ty b;
14091 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014092 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014093 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014094 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014095 &&
14096 _PyPegen_lookahead(1, t_lookahead_rule, p)
14097 )
14098 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014099 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 +010014100 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14101 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014102 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014103 return NULL;
14104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014105 int _end_lineno = _token->end_lineno;
14106 UNUSED(_end_lineno); // Only used by EXTRA macro
14107 int _end_col_offset = _token->end_col_offset;
14108 UNUSED(_end_col_offset); // Only used by EXTRA macro
14109 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14110 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014111 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014112 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014113 return NULL;
14114 }
14115 goto done;
14116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014117 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014118 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014120 }
14121 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014123 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014124 return NULL;
14125 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014126 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 +010014127 Token * _literal;
14128 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014129 expr_ty a;
14130 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014131 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014132 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014133 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014134 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014135 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014136 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014137 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014138 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014139 &&
14140 _PyPegen_lookahead(1, t_lookahead_rule, p)
14141 )
14142 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014143 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 +010014144 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14145 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014146 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014147 return NULL;
14148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014149 int _end_lineno = _token->end_lineno;
14150 UNUSED(_end_lineno); // Only used by EXTRA macro
14151 int _end_col_offset = _token->end_col_offset;
14152 UNUSED(_end_col_offset); // Only used by EXTRA macro
14153 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14154 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014155 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014157 return NULL;
14158 }
14159 goto done;
14160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014161 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014162 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014164 }
14165 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014167 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014168 return NULL;
14169 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014170 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 +010014171 expr_ty a;
14172 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014173 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014174 &&
14175 _PyPegen_lookahead(1, t_lookahead_rule, p)
14176 )
14177 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014178 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 +010014179 _res = a;
14180 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014181 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014182 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014183 return NULL;
14184 }
14185 goto done;
14186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014187 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014188 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014191 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014192 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014193 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014194 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014195}
14196
14197// t_lookahead: '(' | '[' | '.'
14198static void *
14199t_lookahead_rule(Parser *p)
14200{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014201 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014202 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014204 return NULL;
14205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014206 void * _res = NULL;
14207 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014208 { // '('
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, 7)) // 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 }
14227 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014228 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014229 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014230 return NULL;
14231 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014232 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014233 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014234 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014235 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014236 )
14237 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014238 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014239 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014240 goto done;
14241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014243 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014245 }
14246 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014249 return NULL;
14250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014251 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014252 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014253 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014254 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014255 )
14256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014257 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014258 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014259 goto done;
14260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014262 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014265 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014266 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014267 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014268 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014269}
14270
14271// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14272static expr_ty
14273t_atom_rule(Parser *p)
14274{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014275 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014276 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014278 return NULL;
14279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014280 expr_ty _res = NULL;
14281 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14283 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014285 return NULL;
14286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014287 int _start_lineno = p->tokens[_mark]->lineno;
14288 UNUSED(_start_lineno); // Only used by EXTRA macro
14289 int _start_col_offset = p->tokens[_mark]->col_offset;
14290 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014291 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014294 return NULL;
14295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014296 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014297 expr_ty a;
14298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014299 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014300 )
14301 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014302 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014303 _res = _PyPegen_set_expr_context ( p , a , Store );
14304 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014305 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014306 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014307 return NULL;
14308 }
14309 goto done;
14310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014311 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014312 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014314 }
14315 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014317 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014318 return NULL;
14319 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014320 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014321 Token * _literal;
14322 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014323 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014324 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014325 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014326 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014327 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014328 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014329 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014330 )
14331 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014332 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014333 _res = _PyPegen_set_expr_context ( p , a , Store );
14334 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014335 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014336 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014337 return NULL;
14338 }
14339 goto done;
14340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014341 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014342 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014344 }
14345 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014348 return NULL;
14349 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014350 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014351 Token * _literal;
14352 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014353 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014354 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014355 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014356 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014357 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014358 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014359 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014360 )
14361 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014362 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14364 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014365 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014366 return NULL;
14367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014368 int _end_lineno = _token->end_lineno;
14369 UNUSED(_end_lineno); // Only used by EXTRA macro
14370 int _end_col_offset = _token->end_col_offset;
14371 UNUSED(_end_col_offset); // Only used by EXTRA macro
14372 _res = _Py_Tuple ( b , Store , EXTRA );
14373 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014374 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014376 return NULL;
14377 }
14378 goto done;
14379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014380 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014381 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014383 }
14384 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014386 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014387 return NULL;
14388 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014389 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014390 Token * _literal;
14391 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014392 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014393 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014394 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014395 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014396 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014397 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014398 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014399 )
14400 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014401 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14403 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014405 return NULL;
14406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014407 int _end_lineno = _token->end_lineno;
14408 UNUSED(_end_lineno); // Only used by EXTRA macro
14409 int _end_col_offset = _token->end_col_offset;
14410 UNUSED(_end_col_offset); // Only used by EXTRA macro
14411 _res = _Py_List ( b , Store , EXTRA );
14412 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014413 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014415 return NULL;
14416 }
14417 goto done;
14418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014419 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014420 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014423 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014424 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014425 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014426 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014427}
14428
14429// incorrect_arguments:
14430// | args ',' '*'
14431// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014432// | args for_if_clauses
14433// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014434// | args ',' args
14435static void *
14436incorrect_arguments_rule(Parser *p)
14437{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014438 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014441 return NULL;
14442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014443 void * _res = NULL;
14444 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014445 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014446 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014447 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014448 return NULL;
14449 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014450 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014451 Token * _literal;
14452 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014453 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014454 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014455 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014456 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014459 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014460 )
14461 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014462 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014463 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14464 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014465 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014466 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014467 return NULL;
14468 }
14469 goto done;
14470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014471 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014472 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014474 }
14475 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014476 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014477 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014478 return NULL;
14479 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014480 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014481 Token * _literal;
14482 void *_opt_var;
14483 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014484 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014485 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014486 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014487 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014488 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014489 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014490 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014491 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014492 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014493 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014494 )
14495 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014496 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014497 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014498 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014499 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014501 return NULL;
14502 }
14503 goto done;
14504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014505 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014506 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014508 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014509 { // args for_if_clauses
14510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014511 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014512 return NULL;
14513 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014514 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014515 expr_ty a;
14516 asdl_seq* for_if_clauses_var;
14517 if (
14518 (a = args_rule(p)) // args
14519 &&
14520 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14521 )
14522 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014523 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014524 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14525 if (_res == NULL && PyErr_Occurred()) {
14526 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014527 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014528 return NULL;
14529 }
14530 goto done;
14531 }
14532 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014533 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014535 }
14536 { // args ',' expression for_if_clauses
14537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014538 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014539 return NULL;
14540 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014541 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014542 Token * _literal;
14543 expr_ty a;
14544 expr_ty args_var;
14545 asdl_seq* for_if_clauses_var;
14546 if (
14547 (args_var = args_rule(p)) // args
14548 &&
14549 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14550 &&
14551 (a = expression_rule(p)) // expression
14552 &&
14553 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14554 )
14555 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014556 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014557 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14558 if (_res == NULL && PyErr_Occurred()) {
14559 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014560 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014561 return NULL;
14562 }
14563 goto done;
14564 }
14565 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014566 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014568 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014569 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014570 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014571 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014572 return NULL;
14573 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014574 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014575 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014576 expr_ty a;
14577 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014578 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014579 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014580 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014581 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014582 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014583 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014584 )
14585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014586 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014587 _res = _PyPegen_arguments_parsing_error ( p , a );
14588 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014589 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014591 return NULL;
14592 }
14593 goto done;
14594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014595 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014596 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014599 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014600 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014601 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014602 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014603}
14604
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014605// invalid_kwarg: expression '='
14606static void *
14607invalid_kwarg_rule(Parser *p)
14608{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014609 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014610 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014611 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014612 return NULL;
14613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014614 void * _res = NULL;
14615 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014616 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014619 return NULL;
14620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014621 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014622 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014623 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014624 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014625 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014626 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014627 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014628 )
14629 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014630 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014631 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014632 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014633 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014634 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014635 return NULL;
14636 }
14637 goto done;
14638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014640 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014643 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014644 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014646 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014647}
14648
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014649// invalid_named_expression: expression ':=' expression
14650static void *
14651invalid_named_expression_rule(Parser *p)
14652{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014653 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014656 return NULL;
14657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014658 void * _res = NULL;
14659 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014660 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014663 return NULL;
14664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014665 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 +010014666 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014667 expr_ty a;
14668 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014670 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014671 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014672 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014673 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014674 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014675 )
14676 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014677 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 +030014678 _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 +010014679 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014680 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014681 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014682 return NULL;
14683 }
14684 goto done;
14685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014686 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014687 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014690 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014691 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014692 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014693 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014694}
14695
14696// invalid_assignment:
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014697// | list ':' expression
14698// | tuple ':' expression
14699// | star_named_expression ',' star_named_expressions* ':' expression
14700// | expression ':' expression
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014701// | ((star_targets '='))* star_expressions '='
14702// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014703// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014704static void *
14705invalid_assignment_rule(Parser *p)
14706{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014707 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014710 return NULL;
14711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014712 void * _res = NULL;
14713 int _mark = p->mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014714 { // list ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014715 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014716 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014717 return NULL;
14718 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014719 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014720 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014721 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014722 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014723 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014724 (a = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014725 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014726 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014727 &&
14728 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014729 )
14730 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014731 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014732 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not list) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014733 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014734 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014736 return NULL;
14737 }
14738 goto done;
14739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014740 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014741 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014743 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014744 { // tuple ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014745 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014746 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014747 return NULL;
14748 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014749 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014750 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014751 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014752 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014753 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014754 (a = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014755 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014756 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014757 &&
14758 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014759 )
14760 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014761 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014762 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14763 if (_res == NULL && PyErr_Occurred()) {
14764 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014765 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014766 return NULL;
14767 }
14768 goto done;
14769 }
14770 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014771 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014773 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014774 { // star_named_expression ',' star_named_expressions* ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014776 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014777 return NULL;
14778 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014779 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014780 Token * _literal;
14781 Token * _literal_1;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014782 asdl_seq * _loop0_127_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014783 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014784 expr_ty expression_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014785 if (
14786 (a = star_named_expression_rule(p)) // star_named_expression
14787 &&
14788 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14789 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014790 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014791 &&
14792 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014793 &&
14794 (expression_var = expression_rule(p)) // expression
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014795 )
14796 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014797 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 +030014798 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014799 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014800 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014802 return NULL;
14803 }
14804 goto done;
14805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014806 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014807 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014809 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014810 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014812 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014813 return NULL;
14814 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014815 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014816 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014817 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014818 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014819 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014820 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014821 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014822 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014823 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014824 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014825 )
14826 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014827 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 +030014828 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014829 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014830 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014832 return NULL;
14833 }
14834 goto done;
14835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014837 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014839 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014840 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014843 return NULL;
14844 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014845 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 +010014846 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014847 asdl_seq * _loop0_128_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014848 expr_ty a;
14849 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014850 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014851 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014852 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014853 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014854 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014855 )
14856 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014857 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 +030014858 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014859 if (_res == NULL && PyErr_Occurred()) {
14860 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014861 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014862 return NULL;
14863 }
14864 goto done;
14865 }
14866 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014867 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14869 }
14870 { // ((star_targets '='))* yield_expr '='
14871 if (p->error_indicator) {
14872 D(p->level--);
14873 return NULL;
14874 }
14875 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14876 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014877 asdl_seq * _loop0_129_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014878 expr_ty a;
14879 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014880 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014881 &&
14882 (a = yield_expr_rule(p)) // yield_expr
14883 &&
14884 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14885 )
14886 {
14887 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14888 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14889 if (_res == NULL && PyErr_Occurred()) {
14890 p->error_indicator = 1;
14891 D(p->level--);
14892 return NULL;
14893 }
14894 goto done;
14895 }
14896 p->mark = _mark;
14897 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014899 }
14900 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014902 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014903 return NULL;
14904 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014905 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014906 void *_tmp_130_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014907 expr_ty a;
14908 AugOperator* augassign_var;
14909 if (
14910 (a = star_expressions_rule(p)) // star_expressions
14911 &&
14912 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014913 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014914 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014915 )
14916 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014917 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 +010014918 _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 +010014919 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014920 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014921 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014922 return NULL;
14923 }
14924 goto done;
14925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014927 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014930 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014931 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014932 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014933 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014934}
14935
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014936// invalid_del_stmt: 'del' star_expressions
14937static void *
14938invalid_del_stmt_rule(Parser *p)
14939{
14940 D(p->level++);
14941 if (p->error_indicator) {
14942 D(p->level--);
14943 return NULL;
14944 }
14945 void * _res = NULL;
14946 int _mark = p->mark;
14947 { // 'del' star_expressions
14948 if (p->error_indicator) {
14949 D(p->level--);
14950 return NULL;
14951 }
14952 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
14953 Token * _keyword;
14954 expr_ty a;
14955 if (
14956 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
14957 &&
14958 (a = star_expressions_rule(p)) // star_expressions
14959 )
14960 {
14961 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 +030014962 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014963 if (_res == NULL && PyErr_Occurred()) {
14964 p->error_indicator = 1;
14965 D(p->level--);
14966 return NULL;
14967 }
14968 goto done;
14969 }
14970 p->mark = _mark;
14971 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
14972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
14973 }
14974 _res = NULL;
14975 done:
14976 D(p->level--);
14977 return _res;
14978}
14979
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014980// invalid_block: NEWLINE !INDENT
14981static void *
14982invalid_block_rule(Parser *p)
14983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014984 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014987 return NULL;
14988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014989 void * _res = NULL;
14990 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014991 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014994 return NULL;
14995 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014996 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010014997 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014998 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014999 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015000 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015001 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015002 )
15003 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015004 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 +010015005 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15006 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015007 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015009 return NULL;
15010 }
15011 goto done;
15012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015013 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015014 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015017 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015018 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015019 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015020 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015021}
15022
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015023// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015024static void *
15025invalid_comprehension_rule(Parser *p)
15026{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015027 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015028 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015030 return NULL;
15031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015032 void * _res = NULL;
15033 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015034 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015036 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015037 return NULL;
15038 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015039 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015040 void *_tmp_131_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015041 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015042 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015043 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015044 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015045 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015046 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015047 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015048 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015049 )
15050 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015051 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 +030015052 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015053 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015054 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015056 return NULL;
15057 }
15058 goto done;
15059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015060 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015061 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015064 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015065 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015066 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015067 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015068}
15069
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015070// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15071static void *
15072invalid_dict_comprehension_rule(Parser *p)
15073{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015074 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015076 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015077 return NULL;
15078 }
15079 void * _res = NULL;
15080 int _mark = p->mark;
15081 { // '{' '**' bitwise_or for_if_clauses '}'
15082 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015083 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015084 return NULL;
15085 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015086 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 -070015087 Token * _literal;
15088 Token * _literal_1;
15089 Token * a;
15090 expr_ty bitwise_or_var;
15091 asdl_seq* for_if_clauses_var;
15092 if (
15093 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15094 &&
15095 (a = _PyPegen_expect_token(p, 35)) // token='**'
15096 &&
15097 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15098 &&
15099 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15100 &&
15101 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15102 )
15103 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015104 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 -070015105 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15106 if (_res == NULL && PyErr_Occurred()) {
15107 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015108 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015109 return NULL;
15110 }
15111 goto done;
15112 }
15113 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015114 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015116 }
15117 _res = NULL;
15118 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015119 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015120 return _res;
15121}
15122
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015123// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015124// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015125static void *
15126invalid_parameters_rule(Parser *p)
15127{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015128 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015130 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015131 return NULL;
15132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015133 void * _res = NULL;
15134 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015135 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015137 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015138 return NULL;
15139 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015140 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015141 asdl_seq * _loop0_132_var;
15142 void *_tmp_133_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015143 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015144 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015145 (_loop0_132_var = _loop0_132_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015146 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015147 (_tmp_133_var = _tmp_133_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015148 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015149 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015150 )
15151 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015152 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 +010015153 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15154 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015155 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015157 return NULL;
15158 }
15159 goto done;
15160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015161 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015162 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15163 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 +010015164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015165 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015166 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015167 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015168 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015169}
15170
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015171// invalid_lambda_parameters:
15172// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15173static void *
15174invalid_lambda_parameters_rule(Parser *p)
15175{
15176 D(p->level++);
15177 if (p->error_indicator) {
15178 D(p->level--);
15179 return NULL;
15180 }
15181 void * _res = NULL;
15182 int _mark = p->mark;
15183 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15184 if (p->error_indicator) {
15185 D(p->level--);
15186 return NULL;
15187 }
15188 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015189 asdl_seq * _loop0_134_var;
15190 void *_tmp_135_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015191 arg_ty lambda_param_no_default_var;
15192 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015193 (_loop0_134_var = _loop0_134_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015194 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015195 (_tmp_135_var = _tmp_135_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015196 &&
15197 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15198 )
15199 {
15200 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"));
15201 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15202 if (_res == NULL && PyErr_Occurred()) {
15203 p->error_indicator = 1;
15204 D(p->level--);
15205 return NULL;
15206 }
15207 goto done;
15208 }
15209 p->mark = _mark;
15210 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15212 }
15213 _res = NULL;
15214 done:
15215 D(p->level--);
15216 return _res;
15217}
15218
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015219// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015220static void *
15221invalid_star_etc_rule(Parser *p)
15222{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015223 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015225 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015226 return NULL;
15227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015228 void * _res = NULL;
15229 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015230 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015232 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015233 return NULL;
15234 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015235 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015236 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015237 void *_tmp_136_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015238 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015239 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015240 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015241 (_tmp_136_var = _tmp_136_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015242 )
15243 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015244 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015245 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15246 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015247 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015248 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015249 return NULL;
15250 }
15251 goto done;
15252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015253 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015254 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015256 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015257 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015258 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015259 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015260 return NULL;
15261 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015262 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 +030015263 Token * _literal;
15264 Token * _literal_1;
15265 Token * type_comment_var;
15266 if (
15267 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15268 &&
15269 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15270 &&
15271 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15272 )
15273 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015274 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 +030015275 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15276 if (_res == NULL && PyErr_Occurred()) {
15277 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015278 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015279 return NULL;
15280 }
15281 goto done;
15282 }
15283 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015284 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015287 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015288 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015289 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015290 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015291}
15292
15293// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15294static void *
15295invalid_lambda_star_etc_rule(Parser *p)
15296{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015297 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015299 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015300 return NULL;
15301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015302 void * _res = NULL;
15303 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015304 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015306 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015307 return NULL;
15308 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015309 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015310 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015311 void *_tmp_137_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015312 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015313 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015314 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015315 (_tmp_137_var = _tmp_137_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015316 )
15317 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015318 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 +010015319 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15320 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015321 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015322 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015323 return NULL;
15324 }
15325 goto done;
15326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015327 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015328 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015331 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015332 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015333 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015334 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015335}
15336
Guido van Rossumc001c092020-04-30 12:12:19 -070015337// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15338static void *
15339invalid_double_type_comments_rule(Parser *p)
15340{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015341 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015342 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015343 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015344 return NULL;
15345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015346 void * _res = NULL;
15347 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015348 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015349 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015350 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015351 return NULL;
15352 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015353 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 +010015354 Token * indent_var;
15355 Token * newline_var;
15356 Token * newline_var_1;
15357 Token * type_comment_var;
15358 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015359 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015360 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015361 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015362 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015363 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015364 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015365 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015366 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015367 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015368 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015369 )
15370 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015371 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 +010015372 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15373 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015374 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015375 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015376 return NULL;
15377 }
15378 goto done;
15379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015380 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015381 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015383 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015384 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015385 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015386 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015387 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015388}
15389
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015390// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015391static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015392invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015393{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015394 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015395 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015396 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015397 return NULL;
15398 }
15399 void * _res = NULL;
15400 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015401 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015402 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015403 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015404 return NULL;
15405 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015406 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15407 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015408 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015409 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015410 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015411 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015412 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015413 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15414 &&
15415 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015416 )
15417 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015418 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 +030015419 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Shantanu27c0d9b2020-05-11 14:53:58 -070015420 if (_res == NULL && PyErr_Occurred()) {
15421 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015422 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015423 return NULL;
15424 }
15425 goto done;
15426 }
15427 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015428 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15430 }
15431 _res = NULL;
15432 done:
15433 D(p->level--);
15434 return _res;
15435}
15436
15437// invalid_for_target: ASYNC? 'for' star_expressions
15438static void *
15439invalid_for_target_rule(Parser *p)
15440{
15441 D(p->level++);
15442 if (p->error_indicator) {
15443 D(p->level--);
15444 return NULL;
15445 }
15446 void * _res = NULL;
15447 int _mark = p->mark;
15448 { // ASYNC? 'for' star_expressions
15449 if (p->error_indicator) {
15450 D(p->level--);
15451 return NULL;
15452 }
15453 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15454 Token * _keyword;
15455 void *_opt_var;
15456 UNUSED(_opt_var); // Silence compiler warnings
15457 expr_ty a;
15458 if (
15459 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15460 &&
15461 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15462 &&
15463 (a = star_expressions_rule(p)) // star_expressions
15464 )
15465 {
15466 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 +030015467 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015468 if (_res == NULL && PyErr_Occurred()) {
15469 p->error_indicator = 1;
15470 D(p->level--);
15471 return NULL;
15472 }
15473 goto done;
15474 }
15475 p->mark = _mark;
15476 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15478 }
15479 _res = NULL;
15480 done:
15481 D(p->level--);
15482 return _res;
15483}
15484
15485// invalid_group: '(' starred_expression ')'
15486static void *
15487invalid_group_rule(Parser *p)
15488{
15489 D(p->level++);
15490 if (p->error_indicator) {
15491 D(p->level--);
15492 return NULL;
15493 }
15494 void * _res = NULL;
15495 int _mark = p->mark;
15496 { // '(' starred_expression ')'
15497 if (p->error_indicator) {
15498 D(p->level--);
15499 return NULL;
15500 }
15501 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15502 Token * _literal;
15503 Token * _literal_1;
15504 expr_ty a;
15505 if (
15506 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15507 &&
15508 (a = starred_expression_rule(p)) // starred_expression
15509 &&
15510 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15511 )
15512 {
15513 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15514 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15515 if (_res == NULL && PyErr_Occurred()) {
15516 p->error_indicator = 1;
15517 D(p->level--);
15518 return NULL;
15519 }
15520 goto done;
15521 }
15522 p->mark = _mark;
15523 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015525 }
15526 _res = NULL;
15527 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015528 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015529 return _res;
15530}
15531
Pablo Galindo275d7e12020-05-21 22:04:54 +010015532// invalid_import_from_targets: import_from_as_names ','
15533static void *
15534invalid_import_from_targets_rule(Parser *p)
15535{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015536 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015538 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015539 return NULL;
15540 }
15541 void * _res = NULL;
15542 int _mark = p->mark;
15543 { // import_from_as_names ','
15544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015545 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015546 return NULL;
15547 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015548 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 +010015549 Token * _literal;
15550 asdl_seq* import_from_as_names_var;
15551 if (
15552 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15553 &&
15554 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15555 )
15556 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015557 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 +010015558 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15559 if (_res == NULL && PyErr_Occurred()) {
15560 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015561 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015562 return NULL;
15563 }
15564 goto done;
15565 }
15566 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015567 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015569 }
15570 _res = NULL;
15571 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015572 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015573 return _res;
15574}
15575
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015576// _loop0_1: NEWLINE
15577static asdl_seq *
15578_loop0_1_rule(Parser *p)
15579{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015580 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015582 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015583 return NULL;
15584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015585 void *_res = NULL;
15586 int _mark = p->mark;
15587 int _start_mark = p->mark;
15588 void **_children = PyMem_Malloc(sizeof(void *));
15589 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015590 p->error_indicator = 1;
15591 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015593 return NULL;
15594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015595 ssize_t _children_capacity = 1;
15596 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015597 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015598 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015599 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015600 return NULL;
15601 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015602 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015603 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015604 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015605 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015606 )
15607 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015608 _res = newline_var;
15609 if (_n == _children_capacity) {
15610 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015611 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15612 if (!_new_children) {
15613 p->error_indicator = 1;
15614 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015615 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015616 return NULL;
15617 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015618 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015620 _children[_n++] = _res;
15621 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015623 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015624 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015627 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15628 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015629 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015630 p->error_indicator = 1;
15631 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015633 return NULL;
15634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015635 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15636 PyMem_Free(_children);
15637 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015638 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015639 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015640}
15641
Guido van Rossumc001c092020-04-30 12:12:19 -070015642// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015643static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015644_loop0_2_rule(Parser *p)
15645{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015646 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015647 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015648 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015649 return NULL;
15650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015651 void *_res = NULL;
15652 int _mark = p->mark;
15653 int _start_mark = p->mark;
15654 void **_children = PyMem_Malloc(sizeof(void *));
15655 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015656 p->error_indicator = 1;
15657 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015658 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015659 return NULL;
15660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015661 ssize_t _children_capacity = 1;
15662 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015663 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015665 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015666 return NULL;
15667 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015668 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015669 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015670 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015671 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015672 )
15673 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015674 _res = newline_var;
15675 if (_n == _children_capacity) {
15676 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015677 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15678 if (!_new_children) {
15679 p->error_indicator = 1;
15680 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015681 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015682 return NULL;
15683 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015684 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015686 _children[_n++] = _res;
15687 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015689 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015690 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015693 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15694 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015695 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015696 p->error_indicator = 1;
15697 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015698 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015699 return NULL;
15700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015701 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15702 PyMem_Free(_children);
15703 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015704 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015705 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015706}
15707
15708// _loop0_4: ',' expression
15709static asdl_seq *
15710_loop0_4_rule(Parser *p)
15711{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015712 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015714 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015715 return NULL;
15716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015717 void *_res = NULL;
15718 int _mark = p->mark;
15719 int _start_mark = p->mark;
15720 void **_children = PyMem_Malloc(sizeof(void *));
15721 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015722 p->error_indicator = 1;
15723 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015724 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015725 return NULL;
15726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015727 ssize_t _children_capacity = 1;
15728 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015729 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015730 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015731 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015732 return NULL;
15733 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015734 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015735 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015736 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015737 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015738 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015739 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015740 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015741 )
15742 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015743 _res = elem;
15744 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015745 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015746 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015747 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015748 return NULL;
15749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015750 if (_n == _children_capacity) {
15751 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015752 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15753 if (!_new_children) {
15754 p->error_indicator = 1;
15755 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015756 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015757 return NULL;
15758 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015759 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015761 _children[_n++] = _res;
15762 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015765 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015768 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15769 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015770 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015771 p->error_indicator = 1;
15772 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015773 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015774 return NULL;
15775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015776 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15777 PyMem_Free(_children);
15778 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015779 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015780 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015781}
15782
15783// _gather_3: expression _loop0_4
15784static asdl_seq *
15785_gather_3_rule(Parser *p)
15786{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015787 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015789 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015790 return NULL;
15791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015792 asdl_seq * _res = NULL;
15793 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015794 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015796 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015797 return NULL;
15798 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015799 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 -070015800 expr_ty elem;
15801 asdl_seq * seq;
15802 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015803 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015804 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015805 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015806 )
15807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015808 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 +010015809 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015810 goto done;
15811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015812 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015813 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015816 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015817 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015818 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015819 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015820}
15821
15822// _loop0_6: ',' expression
15823static asdl_seq *
15824_loop0_6_rule(Parser *p)
15825{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015826 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015828 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015829 return NULL;
15830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015831 void *_res = NULL;
15832 int _mark = p->mark;
15833 int _start_mark = p->mark;
15834 void **_children = PyMem_Malloc(sizeof(void *));
15835 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015836 p->error_indicator = 1;
15837 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015838 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015839 return NULL;
15840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015841 ssize_t _children_capacity = 1;
15842 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015843 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015844 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015845 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015846 return NULL;
15847 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015848 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015849 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015850 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015851 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015852 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015854 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015855 )
15856 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015857 _res = elem;
15858 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015859 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015860 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015861 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015862 return NULL;
15863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015864 if (_n == _children_capacity) {
15865 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015866 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15867 if (!_new_children) {
15868 p->error_indicator = 1;
15869 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015870 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015871 return NULL;
15872 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015873 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015875 _children[_n++] = _res;
15876 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015878 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015879 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015882 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15883 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015884 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015885 p->error_indicator = 1;
15886 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015887 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015888 return NULL;
15889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015890 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15891 PyMem_Free(_children);
15892 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015893 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015894 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015895}
15896
15897// _gather_5: expression _loop0_6
15898static asdl_seq *
15899_gather_5_rule(Parser *p)
15900{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015901 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015903 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015904 return NULL;
15905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015906 asdl_seq * _res = NULL;
15907 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015908 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015911 return NULL;
15912 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015913 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 -070015914 expr_ty elem;
15915 asdl_seq * seq;
15916 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015917 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015918 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015919 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015920 )
15921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015922 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 +010015923 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015924 goto done;
15925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015927 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015930 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015931 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015932 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015933 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015934}
15935
15936// _loop0_8: ',' expression
15937static asdl_seq *
15938_loop0_8_rule(Parser *p)
15939{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015940 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015942 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015943 return NULL;
15944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015945 void *_res = NULL;
15946 int _mark = p->mark;
15947 int _start_mark = p->mark;
15948 void **_children = PyMem_Malloc(sizeof(void *));
15949 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015950 p->error_indicator = 1;
15951 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015952 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015953 return NULL;
15954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015955 ssize_t _children_capacity = 1;
15956 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015957 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015959 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015960 return NULL;
15961 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015962 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015963 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015964 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015965 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015966 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015967 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015968 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015969 )
15970 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015971 _res = elem;
15972 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015973 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015974 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015975 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015976 return NULL;
15977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015978 if (_n == _children_capacity) {
15979 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015980 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15981 if (!_new_children) {
15982 p->error_indicator = 1;
15983 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015984 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015985 return NULL;
15986 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015987 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015989 _children[_n++] = _res;
15990 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015992 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015993 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
15994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015996 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15997 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015998 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015999 p->error_indicator = 1;
16000 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016001 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016002 return NULL;
16003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016004 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16005 PyMem_Free(_children);
16006 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016007 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016008 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016009}
16010
16011// _gather_7: expression _loop0_8
16012static asdl_seq *
16013_gather_7_rule(Parser *p)
16014{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016015 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016016 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016017 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016018 return NULL;
16019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016020 asdl_seq * _res = NULL;
16021 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016022 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016024 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016025 return NULL;
16026 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016027 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 -070016028 expr_ty elem;
16029 asdl_seq * seq;
16030 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016031 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016032 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016033 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016034 )
16035 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016036 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 +010016037 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016038 goto done;
16039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016040 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016041 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016044 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016045 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016046 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016047 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016048}
16049
16050// _loop0_10: ',' expression
16051static asdl_seq *
16052_loop0_10_rule(Parser *p)
16053{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016054 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016056 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016057 return NULL;
16058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016059 void *_res = NULL;
16060 int _mark = p->mark;
16061 int _start_mark = p->mark;
16062 void **_children = PyMem_Malloc(sizeof(void *));
16063 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016064 p->error_indicator = 1;
16065 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016066 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016067 return NULL;
16068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016069 ssize_t _children_capacity = 1;
16070 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016071 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016073 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016074 return NULL;
16075 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016076 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016077 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016078 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016079 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016080 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016081 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016082 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016083 )
16084 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016085 _res = elem;
16086 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016087 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016088 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016089 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016090 return NULL;
16091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016092 if (_n == _children_capacity) {
16093 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016094 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16095 if (!_new_children) {
16096 p->error_indicator = 1;
16097 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016098 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016099 return NULL;
16100 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016101 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016103 _children[_n++] = _res;
16104 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016106 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016107 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016110 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16111 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016112 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016113 p->error_indicator = 1;
16114 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016115 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016116 return NULL;
16117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016118 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16119 PyMem_Free(_children);
16120 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016121 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016122 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016123}
16124
16125// _gather_9: expression _loop0_10
16126static asdl_seq *
16127_gather_9_rule(Parser *p)
16128{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016129 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016131 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016132 return NULL;
16133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016134 asdl_seq * _res = NULL;
16135 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016136 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016138 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016139 return NULL;
16140 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016141 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 -070016142 expr_ty elem;
16143 asdl_seq * seq;
16144 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016145 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016146 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016147 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016148 )
16149 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016150 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 +010016151 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016152 goto done;
16153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016154 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016155 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016158 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016159 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016160 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016161 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016162}
16163
16164// _loop1_11: statement
16165static asdl_seq *
16166_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016168 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016171 return NULL;
16172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016173 void *_res = NULL;
16174 int _mark = p->mark;
16175 int _start_mark = p->mark;
16176 void **_children = PyMem_Malloc(sizeof(void *));
16177 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016178 p->error_indicator = 1;
16179 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016180 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016181 return NULL;
16182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016183 ssize_t _children_capacity = 1;
16184 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016185 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016187 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016188 return NULL;
16189 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016190 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016191 asdl_seq* statement_var;
16192 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016193 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016194 )
16195 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016196 _res = statement_var;
16197 if (_n == _children_capacity) {
16198 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016199 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16200 if (!_new_children) {
16201 p->error_indicator = 1;
16202 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016204 return NULL;
16205 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016206 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016208 _children[_n++] = _res;
16209 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016211 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016212 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016215 if (_n == 0 || p->error_indicator) {
16216 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016218 return NULL;
16219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016220 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16221 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016222 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016223 p->error_indicator = 1;
16224 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016226 return NULL;
16227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016228 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16229 PyMem_Free(_children);
16230 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016231 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016232 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016233}
16234
Guido van Rossumc001c092020-04-30 12:12:19 -070016235// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016236static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016237_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016238{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016239 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016240 if (p->error_indicator) {
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 void *_res = NULL;
16245 int _mark = p->mark;
16246 int _start_mark = p->mark;
16247 void **_children = PyMem_Malloc(sizeof(void *));
16248 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016249 p->error_indicator = 1;
16250 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016251 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016252 return NULL;
16253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016254 ssize_t _children_capacity = 1;
16255 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016256 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016257 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016258 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016259 return NULL;
16260 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016261 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016262 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016263 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016264 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016265 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016266 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016267 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016268 )
16269 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016270 _res = elem;
16271 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016272 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016273 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016275 return NULL;
16276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016277 if (_n == _children_capacity) {
16278 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016279 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16280 if (!_new_children) {
16281 p->error_indicator = 1;
16282 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016283 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016284 return NULL;
16285 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016286 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016288 _children[_n++] = _res;
16289 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016291 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016292 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016295 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16296 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016297 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016298 p->error_indicator = 1;
16299 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016300 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016301 return NULL;
16302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016303 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16304 PyMem_Free(_children);
16305 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016306 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016307 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016308}
16309
Guido van Rossumc001c092020-04-30 12:12:19 -070016310// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016311static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016312_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016313{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016314 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016315 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016317 return NULL;
16318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016319 asdl_seq * _res = NULL;
16320 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016321 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016322 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016323 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016324 return NULL;
16325 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016326 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 +010016327 stmt_ty elem;
16328 asdl_seq * seq;
16329 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016330 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016331 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016332 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016333 )
16334 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016335 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 +010016336 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016337 goto done;
16338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016339 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016340 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016343 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016344 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016345 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016346 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016347}
16348
Guido van Rossumc001c092020-04-30 12:12:19 -070016349// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016350static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016351_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016352{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016353 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016355 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016356 return NULL;
16357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016358 void * _res = NULL;
16359 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016360 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016362 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016363 return NULL;
16364 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016365 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016366 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016367 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016368 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016369 )
16370 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016371 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016372 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016373 goto done;
16374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016376 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016378 }
16379 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016381 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016382 return NULL;
16383 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016384 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016385 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016386 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016387 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016388 )
16389 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016390 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016391 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016392 goto done;
16393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016394 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016395 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016398 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016399 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016400 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016401 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016402}
16403
Guido van Rossumc001c092020-04-30 12:12:19 -070016404// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016405static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016406_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016407{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016408 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016411 return NULL;
16412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016413 void * _res = NULL;
16414 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016415 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016418 return NULL;
16419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016420 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016421 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016422 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016423 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016424 )
16425 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016426 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016427 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016428 goto done;
16429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016430 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016431 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016433 }
16434 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016435 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016436 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016437 return NULL;
16438 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016439 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016440 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016441 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016442 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016443 )
16444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016445 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016446 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016447 goto done;
16448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016450 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016452 }
16453 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016456 return NULL;
16457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016458 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016459 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016460 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016461 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016462 )
16463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016464 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016465 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016466 goto done;
16467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016468 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016469 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016472 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016473 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016474 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016475 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016476}
16477
Guido van Rossumc001c092020-04-30 12:12:19 -070016478// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016479static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016480_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016481{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016482 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016485 return NULL;
16486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016487 void * _res = NULL;
16488 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016489 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016490 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016491 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016492 return NULL;
16493 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016494 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016495 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016496 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016497 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016498 )
16499 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016500 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016501 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016502 goto done;
16503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016504 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016505 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016507 }
16508 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016510 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016511 return NULL;
16512 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016513 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016514 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016515 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016516 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016517 )
16518 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016519 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016520 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016521 goto done;
16522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016523 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016524 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016527 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016528 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016529 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016530 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016531}
16532
Guido van Rossumc001c092020-04-30 12:12:19 -070016533// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016534static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016535_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016536{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016537 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016539 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016540 return NULL;
16541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016542 void * _res = NULL;
16543 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016544 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016545 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016546 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016547 return NULL;
16548 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016549 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016550 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016551 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016552 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016553 )
16554 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016555 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016556 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016557 goto done;
16558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016560 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016562 }
16563 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016565 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016566 return NULL;
16567 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016568 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016569 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016570 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016571 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016572 )
16573 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016574 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016575 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016576 goto done;
16577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016578 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016579 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016582 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016583 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016584 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016585 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016586}
16587
Guido van Rossumc001c092020-04-30 12:12:19 -070016588// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016589static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016590_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016591{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016592 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016594 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016595 return NULL;
16596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016597 void * _res = NULL;
16598 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016599 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016600 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016601 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016602 return NULL;
16603 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016604 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016605 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016606 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016607 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016608 )
16609 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016610 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016611 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016612 goto done;
16613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016614 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016615 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016617 }
16618 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016621 return NULL;
16622 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016623 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016624 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016625 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016626 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016627 )
16628 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016629 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016630 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016631 goto done;
16632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016633 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016634 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016637 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016638 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016639 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016640 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016641}
16642
Guido van Rossumc001c092020-04-30 12:12:19 -070016643// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016644static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016645_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016646{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016647 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016648 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016650 return NULL;
16651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016652 void * _res = NULL;
16653 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016654 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016655 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016656 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016657 return NULL;
16658 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016659 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016660 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016661 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016662 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016663 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016664 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016665 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016666 )
16667 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016668 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 +010016669 _res = d;
16670 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016671 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016673 return NULL;
16674 }
16675 goto done;
16676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016678 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016681 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016682 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016683 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016684 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016685}
16686
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016687// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016688static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016689_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016690{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016691 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016692 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016693 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016694 return NULL;
16695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016696 void * _res = NULL;
16697 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016698 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016699 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016700 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016701 return NULL;
16702 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016703 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016704 Token * _literal;
16705 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016706 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016707 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016708 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016709 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016710 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016711 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016712 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016713 )
16714 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016715 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 +010016716 _res = b;
16717 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016718 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016720 return NULL;
16721 }
16722 goto done;
16723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016724 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016725 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016727 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016728 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016729 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016730 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016731 return NULL;
16732 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016733 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 +030016734 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016735 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016736 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016737 )
16738 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016739 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016740 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016741 goto done;
16742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016743 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016744 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016747 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016748 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016749 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016750 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016751}
16752
Guido van Rossumc001c092020-04-30 12:12:19 -070016753// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016754static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016755_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016756{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016757 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016760 return NULL;
16761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016762 void * _res = NULL;
16763 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016764 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016766 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016767 return NULL;
16768 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016769 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016770 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016771 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016772 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016773 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016774 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016775 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016776 )
16777 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016778 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 +010016779 _res = d;
16780 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016781 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016782 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016783 return NULL;
16784 }
16785 goto done;
16786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016787 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016788 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016791 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016792 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016793 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016794 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016795}
16796
Guido van Rossumc001c092020-04-30 12:12:19 -070016797// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016798static asdl_seq *
16799_loop1_22_rule(Parser *p)
16800{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016801 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016802 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016804 return NULL;
16805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016806 void *_res = NULL;
16807 int _mark = p->mark;
16808 int _start_mark = p->mark;
16809 void **_children = PyMem_Malloc(sizeof(void *));
16810 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016811 p->error_indicator = 1;
16812 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016814 return NULL;
16815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016816 ssize_t _children_capacity = 1;
16817 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016818 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016820 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016821 return NULL;
16822 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016823 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030016824 void *_tmp_138_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016825 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030016826 (_tmp_138_var = _tmp_138_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016827 )
16828 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030016829 _res = _tmp_138_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016830 if (_n == _children_capacity) {
16831 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016832 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16833 if (!_new_children) {
16834 p->error_indicator = 1;
16835 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016836 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016837 return NULL;
16838 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016839 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016841 _children[_n++] = _res;
16842 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016845 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016848 if (_n == 0 || p->error_indicator) {
16849 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016850 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016851 return NULL;
16852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016853 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16854 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016855 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016856 p->error_indicator = 1;
16857 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016858 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016859 return NULL;
16860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016861 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16862 PyMem_Free(_children);
16863 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016864 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016865 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016866}
16867
Guido van Rossumc001c092020-04-30 12:12:19 -070016868// _tmp_23: yield_expr | star_expressions
16869static void *
16870_tmp_23_rule(Parser *p)
16871{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016872 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016873 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016874 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016875 return NULL;
16876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016877 void * _res = NULL;
16878 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016879 { // yield_expr
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> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016885 expr_ty yield_expr_var;
16886 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016887 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016888 )
16889 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016890 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 +010016891 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016892 goto done;
16893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016894 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016895 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016897 }
16898 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016900 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016901 return NULL;
16902 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016903 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 -070016904 expr_ty star_expressions_var;
16905 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016906 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016907 )
16908 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016909 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 +010016910 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016911 goto done;
16912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016914 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016917 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016918 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016919 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016920 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016921}
16922
16923// _tmp_24: yield_expr | star_expressions
16924static void *
16925_tmp_24_rule(Parser *p)
16926{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016927 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016929 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016930 return NULL;
16931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016932 void * _res = NULL;
16933 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016934 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016935 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016936 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016937 return NULL;
16938 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016939 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 -070016940 expr_ty yield_expr_var;
16941 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016942 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016943 )
16944 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016945 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 +010016946 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016947 goto done;
16948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016949 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016950 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016952 }
16953 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016954 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016955 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016956 return NULL;
16957 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016958 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 -070016959 expr_ty star_expressions_var;
16960 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016961 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016962 )
16963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016964 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 +010016965 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016966 goto done;
16967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016969 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016972 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016973 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016974 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016975 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016976}
16977
16978// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016979static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016980_loop0_26_rule(Parser *p)
16981{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016982 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016984 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016985 return NULL;
16986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016987 void *_res = NULL;
16988 int _mark = p->mark;
16989 int _start_mark = p->mark;
16990 void **_children = PyMem_Malloc(sizeof(void *));
16991 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016992 p->error_indicator = 1;
16993 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016994 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016995 return NULL;
16996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016997 ssize_t _children_capacity = 1;
16998 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016999 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017001 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017002 return NULL;
17003 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017004 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017005 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017006 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017007 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017008 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017010 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017011 )
17012 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017013 _res = elem;
17014 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017015 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017016 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017017 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017018 return NULL;
17019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017020 if (_n == _children_capacity) {
17021 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017022 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17023 if (!_new_children) {
17024 p->error_indicator = 1;
17025 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017026 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017027 return NULL;
17028 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017029 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017031 _children[_n++] = _res;
17032 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017034 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017035 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017038 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17039 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017040 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017041 p->error_indicator = 1;
17042 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017043 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017044 return NULL;
17045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017046 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17047 PyMem_Free(_children);
17048 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017049 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017050 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017051}
17052
17053// _gather_25: NAME _loop0_26
17054static asdl_seq *
17055_gather_25_rule(Parser *p)
17056{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017057 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017059 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017060 return NULL;
17061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017062 asdl_seq * _res = NULL;
17063 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017064 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017067 return NULL;
17068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017069 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 -070017070 expr_ty elem;
17071 asdl_seq * seq;
17072 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017073 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017074 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017075 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017076 )
17077 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017078 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 +010017079 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017080 goto done;
17081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017082 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017083 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017086 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017087 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017088 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017089 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017090}
17091
17092// _loop0_28: ',' NAME
17093static asdl_seq *
17094_loop0_28_rule(Parser *p)
17095{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017096 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017098 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017099 return NULL;
17100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017101 void *_res = NULL;
17102 int _mark = p->mark;
17103 int _start_mark = p->mark;
17104 void **_children = PyMem_Malloc(sizeof(void *));
17105 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017106 p->error_indicator = 1;
17107 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017108 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017109 return NULL;
17110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017111 ssize_t _children_capacity = 1;
17112 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017113 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017116 return NULL;
17117 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017118 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017119 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017120 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017121 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017122 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017123 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017124 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017125 )
17126 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017127 _res = elem;
17128 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017129 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017130 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017131 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017132 return NULL;
17133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017134 if (_n == _children_capacity) {
17135 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017136 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17137 if (!_new_children) {
17138 p->error_indicator = 1;
17139 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017140 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017141 return NULL;
17142 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017143 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017144 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017145 _children[_n++] = _res;
17146 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017148 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017149 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017152 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17153 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017154 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017155 p->error_indicator = 1;
17156 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017157 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017158 return NULL;
17159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017160 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17161 PyMem_Free(_children);
17162 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017163 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017164 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017165}
17166
17167// _gather_27: NAME _loop0_28
17168static asdl_seq *
17169_gather_27_rule(Parser *p)
17170{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017171 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017173 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017174 return NULL;
17175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017176 asdl_seq * _res = NULL;
17177 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017178 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017180 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017181 return NULL;
17182 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017183 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 -070017184 expr_ty elem;
17185 asdl_seq * seq;
17186 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017187 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017188 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017189 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017190 )
17191 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017192 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 +010017193 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017194 goto done;
17195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017196 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017197 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017200 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017201 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017202 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017203 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017204}
17205
17206// _tmp_29: ',' expression
17207static void *
17208_tmp_29_rule(Parser *p)
17209{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017210 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017212 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017213 return NULL;
17214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017215 void * _res = NULL;
17216 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017217 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017218 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017219 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017220 return NULL;
17221 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017222 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017223 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017224 expr_ty z;
17225 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017226 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017227 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017228 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017229 )
17230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017231 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017232 _res = z;
17233 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017235 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017236 return NULL;
17237 }
17238 goto done;
17239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017241 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017244 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017245 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017246 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017247 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017248}
17249
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017250// _tmp_30: ';' | NEWLINE
17251static void *
17252_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017253{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017254 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017256 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017257 return NULL;
17258 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017259 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017260 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017261 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017262 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017263 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017264 return NULL;
17265 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017266 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17267 Token * _literal;
17268 if (
17269 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017270 )
17271 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017272 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17273 _res = _literal;
17274 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017276 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017277 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017279 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017280 { // NEWLINE
17281 if (p->error_indicator) {
17282 D(p->level--);
17283 return NULL;
17284 }
17285 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17286 Token * newline_var;
17287 if (
17288 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17289 )
17290 {
17291 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17292 _res = newline_var;
17293 goto done;
17294 }
17295 p->mark = _mark;
17296 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017298 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017299 _res = NULL;
17300 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017301 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017302 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017303}
17304
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017305// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017306static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017307_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017308{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017309 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017310 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017311 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017312 return NULL;
17313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017314 void *_res = NULL;
17315 int _mark = p->mark;
17316 int _start_mark = p->mark;
17317 void **_children = PyMem_Malloc(sizeof(void *));
17318 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017319 p->error_indicator = 1;
17320 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017321 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017322 return NULL;
17323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017324 ssize_t _children_capacity = 1;
17325 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017326 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017327 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017328 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017329 return NULL;
17330 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017331 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017332 void *_tmp_139_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017333 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017334 (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017335 )
17336 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017337 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017338 if (_n == _children_capacity) {
17339 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017340 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17341 if (!_new_children) {
17342 p->error_indicator = 1;
17343 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017344 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017345 return NULL;
17346 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017347 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017349 _children[_n++] = _res;
17350 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017352 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017353 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17355 }
17356 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17357 if (!_seq) {
17358 PyMem_Free(_children);
17359 p->error_indicator = 1;
17360 PyErr_NoMemory();
17361 D(p->level--);
17362 return NULL;
17363 }
17364 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17365 PyMem_Free(_children);
17366 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17367 D(p->level--);
17368 return _seq;
17369}
17370
17371// _loop1_32: ('.' | '...')
17372static asdl_seq *
17373_loop1_32_rule(Parser *p)
17374{
17375 D(p->level++);
17376 if (p->error_indicator) {
17377 D(p->level--);
17378 return NULL;
17379 }
17380 void *_res = NULL;
17381 int _mark = p->mark;
17382 int _start_mark = p->mark;
17383 void **_children = PyMem_Malloc(sizeof(void *));
17384 if (!_children) {
17385 p->error_indicator = 1;
17386 PyErr_NoMemory();
17387 D(p->level--);
17388 return NULL;
17389 }
17390 ssize_t _children_capacity = 1;
17391 ssize_t _n = 0;
17392 { // ('.' | '...')
17393 if (p->error_indicator) {
17394 D(p->level--);
17395 return NULL;
17396 }
17397 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017398 void *_tmp_140_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017399 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017400 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017401 )
17402 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017403 _res = _tmp_140_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017404 if (_n == _children_capacity) {
17405 _children_capacity *= 2;
17406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17407 if (!_new_children) {
17408 p->error_indicator = 1;
17409 PyErr_NoMemory();
17410 D(p->level--);
17411 return NULL;
17412 }
17413 _children = _new_children;
17414 }
17415 _children[_n++] = _res;
17416 _mark = p->mark;
17417 }
17418 p->mark = _mark;
17419 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017422 if (_n == 0 || p->error_indicator) {
17423 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017424 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017425 return NULL;
17426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017427 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17428 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017429 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017430 p->error_indicator = 1;
17431 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017432 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017433 return NULL;
17434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017435 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17436 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017437 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017438 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017439 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017440}
17441
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017442// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017443static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017444_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017445{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017446 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017447 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017449 return NULL;
17450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017451 void *_res = NULL;
17452 int _mark = p->mark;
17453 int _start_mark = p->mark;
17454 void **_children = PyMem_Malloc(sizeof(void *));
17455 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017456 p->error_indicator = 1;
17457 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017458 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017459 return NULL;
17460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017461 ssize_t _children_capacity = 1;
17462 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017463 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017464 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017465 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017466 return NULL;
17467 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017468 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 +010017469 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017470 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017471 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017472 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017473 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017474 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017475 )
17476 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017477 _res = elem;
17478 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017479 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017480 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017482 return NULL;
17483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017484 if (_n == _children_capacity) {
17485 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17487 if (!_new_children) {
17488 p->error_indicator = 1;
17489 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017490 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017491 return NULL;
17492 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017493 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017495 _children[_n++] = _res;
17496 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017498 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017499 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017502 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17503 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017504 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017505 p->error_indicator = 1;
17506 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017507 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017508 return NULL;
17509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017510 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17511 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017512 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017513 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017514 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017515}
17516
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017517// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017518static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017519_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017520{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017521 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017522 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017523 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017524 return NULL;
17525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017526 asdl_seq * _res = NULL;
17527 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017528 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017529 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017530 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017531 return NULL;
17532 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017533 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 +010017534 alias_ty elem;
17535 asdl_seq * seq;
17536 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017537 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017538 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017539 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017540 )
17541 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017542 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 +010017543 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017544 goto done;
17545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017546 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017547 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017550 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017551 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017552 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017553 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017554}
17555
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017556// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017557static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017558_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017559{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017560 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017561 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017562 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017563 return NULL;
17564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017565 void * _res = NULL;
17566 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017567 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017570 return NULL;
17571 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017572 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017573 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017574 expr_ty z;
17575 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017576 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017577 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017578 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017579 )
17580 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017581 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 +010017582 _res = z;
17583 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017586 return NULL;
17587 }
17588 goto done;
17589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017590 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017591 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017594 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017595 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017596 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017597 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017598}
17599
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017600// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017601static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017602_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017603{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017604 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017606 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017607 return NULL;
17608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017609 void *_res = NULL;
17610 int _mark = p->mark;
17611 int _start_mark = p->mark;
17612 void **_children = PyMem_Malloc(sizeof(void *));
17613 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017614 p->error_indicator = 1;
17615 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017616 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017617 return NULL;
17618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017619 ssize_t _children_capacity = 1;
17620 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017621 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017623 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017624 return NULL;
17625 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017626 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 +010017627 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017628 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017629 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017630 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017631 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017632 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017633 )
17634 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017635 _res = elem;
17636 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017637 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017638 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017640 return NULL;
17641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017642 if (_n == _children_capacity) {
17643 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017644 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17645 if (!_new_children) {
17646 p->error_indicator = 1;
17647 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017648 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017649 return NULL;
17650 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017651 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017653 _children[_n++] = _res;
17654 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017656 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017657 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017660 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17661 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017662 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017663 p->error_indicator = 1;
17664 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017665 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017666 return NULL;
17667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017668 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17669 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017670 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017671 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017672 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017673}
17674
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017675// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017676static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017677_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017678{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017679 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017681 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017682 return NULL;
17683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017684 asdl_seq * _res = NULL;
17685 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017686 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017688 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017689 return NULL;
17690 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017691 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 +010017692 alias_ty elem;
17693 asdl_seq * seq;
17694 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017695 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017696 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017697 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017698 )
17699 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017700 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 +010017701 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017702 goto done;
17703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017704 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017705 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017708 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017709 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017710 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017711 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017712}
17713
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017714// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017715static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017716_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017717{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017718 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017719 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017720 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017721 return NULL;
17722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017723 void * _res = NULL;
17724 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017725 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017727 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017728 return NULL;
17729 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017730 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017731 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017732 expr_ty z;
17733 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017734 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017735 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017736 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017737 )
17738 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017739 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 +010017740 _res = z;
17741 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017742 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017743 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017744 return NULL;
17745 }
17746 goto done;
17747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017748 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017749 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017752 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017753 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017754 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017755 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017756}
17757
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017758// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017759static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017760_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017761{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017762 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017763 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017764 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017765 return NULL;
17766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017767 void *_res = NULL;
17768 int _mark = p->mark;
17769 int _start_mark = p->mark;
17770 void **_children = PyMem_Malloc(sizeof(void *));
17771 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017772 p->error_indicator = 1;
17773 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017774 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017775 return NULL;
17776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017777 ssize_t _children_capacity = 1;
17778 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017779 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017780 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017781 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017782 return NULL;
17783 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017784 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017785 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017786 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017787 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017788 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017789 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017790 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017791 )
17792 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017793 _res = elem;
17794 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017795 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017796 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017797 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017798 return NULL;
17799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017800 if (_n == _children_capacity) {
17801 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017802 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17803 if (!_new_children) {
17804 p->error_indicator = 1;
17805 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017807 return NULL;
17808 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017809 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017811 _children[_n++] = _res;
17812 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017814 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017815 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017818 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17819 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017820 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017821 p->error_indicator = 1;
17822 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017823 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017824 return NULL;
17825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017826 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17827 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017828 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017830 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017831}
17832
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017833// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017834static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017835_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017836{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017837 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017839 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017840 return NULL;
17841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017842 asdl_seq * _res = NULL;
17843 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017844 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017845 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017846 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017847 return NULL;
17848 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017849 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 +010017850 withitem_ty elem;
17851 asdl_seq * seq;
17852 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017853 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017854 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017855 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017856 )
17857 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017858 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 +010017859 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017860 goto done;
17861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017862 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017863 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017865 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017866 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017867 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017868 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017869 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017870}
17871
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017872// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017873static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017874_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017875{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017876 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017879 return NULL;
17880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017881 void *_res = NULL;
17882 int _mark = p->mark;
17883 int _start_mark = p->mark;
17884 void **_children = PyMem_Malloc(sizeof(void *));
17885 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017886 p->error_indicator = 1;
17887 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017888 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017889 return NULL;
17890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017891 ssize_t _children_capacity = 1;
17892 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017893 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017895 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017896 return NULL;
17897 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017898 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017899 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017900 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017901 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017902 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017903 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017904 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017905 )
17906 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017907 _res = elem;
17908 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017909 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017910 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017912 return NULL;
17913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017914 if (_n == _children_capacity) {
17915 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017916 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17917 if (!_new_children) {
17918 p->error_indicator = 1;
17919 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017921 return NULL;
17922 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017923 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017925 _children[_n++] = _res;
17926 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017928 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017929 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017932 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17933 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017934 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017935 p->error_indicator = 1;
17936 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017937 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017938 return NULL;
17939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017940 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17941 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017942 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017943 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017944 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017945}
17946
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017947// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017948static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017949_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017950{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017951 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017954 return NULL;
17955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017956 asdl_seq * _res = NULL;
17957 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017958 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017959 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017960 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017961 return NULL;
17962 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017963 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 +010017964 withitem_ty elem;
17965 asdl_seq * seq;
17966 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017967 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017968 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017969 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017970 )
17971 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017972 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 +010017973 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017974 goto done;
17975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017976 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017977 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
17978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017980 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017981 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017982 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017983 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017984}
17985
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017986// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017987static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017988_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017989{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017990 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017991 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017992 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017993 return NULL;
17994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017995 void *_res = NULL;
17996 int _mark = p->mark;
17997 int _start_mark = p->mark;
17998 void **_children = PyMem_Malloc(sizeof(void *));
17999 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018000 p->error_indicator = 1;
18001 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018002 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018003 return NULL;
18004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018005 ssize_t _children_capacity = 1;
18006 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018007 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018009 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018010 return NULL;
18011 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018012 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018013 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018014 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018015 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018016 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018017 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018018 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018019 )
18020 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018021 _res = elem;
18022 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018023 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018024 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018025 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018026 return NULL;
18027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018028 if (_n == _children_capacity) {
18029 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018030 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18031 if (!_new_children) {
18032 p->error_indicator = 1;
18033 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018034 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018035 return NULL;
18036 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018037 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018039 _children[_n++] = _res;
18040 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018042 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018043 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018046 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18047 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018048 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018049 p->error_indicator = 1;
18050 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018051 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018052 return NULL;
18053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018054 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18055 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018056 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018057 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018058 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018059}
18060
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018061// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018062static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018063_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018064{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018065 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018066 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018067 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018068 return NULL;
18069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018070 asdl_seq * _res = NULL;
18071 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018072 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018075 return NULL;
18076 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018077 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 +030018078 withitem_ty elem;
18079 asdl_seq * seq;
18080 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018081 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018082 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018083 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018084 )
18085 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018086 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 +010018087 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018088 goto done;
18089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018090 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018091 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018094 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018095 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018096 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018097 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018098}
18099
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018100// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018101static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018102_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018103{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018104 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018106 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018107 return NULL;
18108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018109 void *_res = NULL;
18110 int _mark = p->mark;
18111 int _start_mark = p->mark;
18112 void **_children = PyMem_Malloc(sizeof(void *));
18113 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018114 p->error_indicator = 1;
18115 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018116 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018117 return NULL;
18118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018119 ssize_t _children_capacity = 1;
18120 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018121 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018123 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018124 return NULL;
18125 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018126 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018127 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018128 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018129 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018130 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018131 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018132 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018133 )
18134 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018135 _res = elem;
18136 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018137 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018138 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018139 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018140 return NULL;
18141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018142 if (_n == _children_capacity) {
18143 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018144 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18145 if (!_new_children) {
18146 p->error_indicator = 1;
18147 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018148 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018149 return NULL;
18150 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018151 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018153 _children[_n++] = _res;
18154 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018156 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018157 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018160 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18161 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018162 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018163 p->error_indicator = 1;
18164 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018165 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018166 return NULL;
18167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018168 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18169 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018170 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018171 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018172 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018173}
18174
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018175// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018176static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018177_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018178{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018179 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018181 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018182 return NULL;
18183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018184 asdl_seq * _res = NULL;
18185 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018186 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018188 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018189 return NULL;
18190 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018191 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 +030018192 withitem_ty elem;
18193 asdl_seq * seq;
18194 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018195 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018196 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018197 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018198 )
18199 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018200 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 +010018201 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018202 goto done;
18203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018204 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018205 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018208 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018209 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018210 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018211 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018212}
18213
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018214// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018215static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018216_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018217{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018218 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018219 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018220 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018221 return NULL;
18222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018223 void * _res = NULL;
18224 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018225 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018226 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018227 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018228 return NULL;
18229 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018230 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18231 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018232 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018233 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018234 )
18235 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018236 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18237 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018238 goto done;
18239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018240 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018241 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18243 }
18244 { // ')'
18245 if (p->error_indicator) {
18246 D(p->level--);
18247 return NULL;
18248 }
18249 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18250 Token * _literal;
18251 if (
18252 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18253 )
18254 {
18255 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18256 _res = _literal;
18257 goto done;
18258 }
18259 p->mark = _mark;
18260 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18262 }
18263 { // ':'
18264 if (p->error_indicator) {
18265 D(p->level--);
18266 return NULL;
18267 }
18268 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18269 Token * _literal;
18270 if (
18271 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18272 )
18273 {
18274 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18275 _res = _literal;
18276 goto done;
18277 }
18278 p->mark = _mark;
18279 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018282 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018283 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018284 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018285 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018286}
18287
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018288// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018289static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018290_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018291{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018292 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018294 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018295 return NULL;
18296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018297 void *_res = NULL;
18298 int _mark = p->mark;
18299 int _start_mark = p->mark;
18300 void **_children = PyMem_Malloc(sizeof(void *));
18301 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018302 p->error_indicator = 1;
18303 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018305 return NULL;
18306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018307 ssize_t _children_capacity = 1;
18308 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018309 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018310 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018311 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018312 return NULL;
18313 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018314 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018315 excepthandler_ty except_block_var;
18316 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018317 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018318 )
18319 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018320 _res = except_block_var;
18321 if (_n == _children_capacity) {
18322 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018323 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18324 if (!_new_children) {
18325 p->error_indicator = 1;
18326 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018327 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018328 return NULL;
18329 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018330 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018332 _children[_n++] = _res;
18333 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018335 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018336 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018339 if (_n == 0 || p->error_indicator) {
18340 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018342 return NULL;
18343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018344 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18345 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018346 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018347 p->error_indicator = 1;
18348 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018349 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018350 return NULL;
18351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018352 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18353 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018354 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018355 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018356 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018357}
18358
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018359// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018360static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018361_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018362{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018363 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018364 if (p->error_indicator) {
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 void * _res = NULL;
18369 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018370 { // 'as' NAME
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> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018376 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018377 expr_ty z;
18378 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018379 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018380 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018381 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018382 )
18383 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018384 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 +010018385 _res = z;
18386 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018387 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018389 return NULL;
18390 }
18391 goto done;
18392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018393 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018394 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018397 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018398 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018399 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018400 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018401}
18402
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018403// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018404static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018405_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018406{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018407 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018409 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018410 return NULL;
18411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018412 void * _res = NULL;
18413 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018414 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018415 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018416 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018417 return NULL;
18418 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018419 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018420 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018421 expr_ty z;
18422 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018423 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018424 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018425 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018426 )
18427 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018428 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 +010018429 _res = z;
18430 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018431 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018432 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018433 return NULL;
18434 }
18435 goto done;
18436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018437 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018438 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018441 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018442 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018443 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018444 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018445}
18446
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018447// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018448static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018449_tmp_51_rule(Parser *p)
18450{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018451 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018453 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018454 return NULL;
18455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018456 void * _res = NULL;
18457 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018458 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018461 return NULL;
18462 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018463 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018464 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018465 expr_ty z;
18466 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018467 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018468 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018469 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018470 )
18471 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018472 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018473 _res = z;
18474 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018476 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018477 return NULL;
18478 }
18479 goto done;
18480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018481 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018482 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018485 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018486 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018487 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018488 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018489}
18490
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018491// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018492static void *
18493_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018494{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018495 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018496 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018497 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018498 return NULL;
18499 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018500 void * _res = NULL;
18501 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018502 { // '->' expression
18503 if (p->error_indicator) {
18504 D(p->level--);
18505 return NULL;
18506 }
18507 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18508 Token * _literal;
18509 expr_ty z;
18510 if (
18511 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18512 &&
18513 (z = expression_rule(p)) // expression
18514 )
18515 {
18516 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18517 _res = z;
18518 if (_res == NULL && PyErr_Occurred()) {
18519 p->error_indicator = 1;
18520 D(p->level--);
18521 return NULL;
18522 }
18523 goto done;
18524 }
18525 p->mark = _mark;
18526 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18528 }
18529 _res = NULL;
18530 done:
18531 D(p->level--);
18532 return _res;
18533}
18534
18535// _tmp_53: NEWLINE INDENT
18536static void *
18537_tmp_53_rule(Parser *p)
18538{
18539 D(p->level++);
18540 if (p->error_indicator) {
18541 D(p->level--);
18542 return NULL;
18543 }
18544 void * _res = NULL;
18545 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018546 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018547 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018548 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018549 return NULL;
18550 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018551 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018552 Token * indent_var;
18553 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018554 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018555 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018556 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018557 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018558 )
18559 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018560 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 +010018561 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018562 goto done;
18563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018564 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018565 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018568 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018569 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018571 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018572}
18573
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018574// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018575static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018576_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018578 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018581 return NULL;
18582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018583 void *_res = NULL;
18584 int _mark = p->mark;
18585 int _start_mark = p->mark;
18586 void **_children = PyMem_Malloc(sizeof(void *));
18587 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018588 p->error_indicator = 1;
18589 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018591 return NULL;
18592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018593 ssize_t _children_capacity = 1;
18594 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018595 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018596 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018597 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018598 return NULL;
18599 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018600 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 -070018601 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018602 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018603 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018604 )
18605 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018606 _res = param_no_default_var;
18607 if (_n == _children_capacity) {
18608 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018609 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18610 if (!_new_children) {
18611 p->error_indicator = 1;
18612 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018613 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018614 return NULL;
18615 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018616 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018618 _children[_n++] = _res;
18619 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018621 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018622 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018625 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18626 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018627 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018628 p->error_indicator = 1;
18629 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018630 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018631 return NULL;
18632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018633 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18634 PyMem_Free(_children);
18635 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018636 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018637 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018638}
18639
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018640// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018641static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018642_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018643{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018644 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018646 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018647 return NULL;
18648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018649 void *_res = NULL;
18650 int _mark = p->mark;
18651 int _start_mark = p->mark;
18652 void **_children = PyMem_Malloc(sizeof(void *));
18653 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018654 p->error_indicator = 1;
18655 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018656 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018657 return NULL;
18658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018659 ssize_t _children_capacity = 1;
18660 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018661 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018663 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018664 return NULL;
18665 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018666 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 -070018667 NameDefaultPair* param_with_default_var;
18668 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018669 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018670 )
18671 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018672 _res = param_with_default_var;
18673 if (_n == _children_capacity) {
18674 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018675 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18676 if (!_new_children) {
18677 p->error_indicator = 1;
18678 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018679 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018680 return NULL;
18681 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018682 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018684 _children[_n++] = _res;
18685 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018687 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018688 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018691 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18692 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018693 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018694 p->error_indicator = 1;
18695 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018696 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018697 return NULL;
18698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018699 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18700 PyMem_Free(_children);
18701 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018703 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018704}
18705
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018706// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018707static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018708_loop0_56_rule(Parser *p)
18709{
18710 D(p->level++);
18711 if (p->error_indicator) {
18712 D(p->level--);
18713 return NULL;
18714 }
18715 void *_res = NULL;
18716 int _mark = p->mark;
18717 int _start_mark = p->mark;
18718 void **_children = PyMem_Malloc(sizeof(void *));
18719 if (!_children) {
18720 p->error_indicator = 1;
18721 PyErr_NoMemory();
18722 D(p->level--);
18723 return NULL;
18724 }
18725 ssize_t _children_capacity = 1;
18726 ssize_t _n = 0;
18727 { // param_with_default
18728 if (p->error_indicator) {
18729 D(p->level--);
18730 return NULL;
18731 }
18732 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18733 NameDefaultPair* param_with_default_var;
18734 while (
18735 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18736 )
18737 {
18738 _res = param_with_default_var;
18739 if (_n == _children_capacity) {
18740 _children_capacity *= 2;
18741 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18742 if (!_new_children) {
18743 p->error_indicator = 1;
18744 PyErr_NoMemory();
18745 D(p->level--);
18746 return NULL;
18747 }
18748 _children = _new_children;
18749 }
18750 _children[_n++] = _res;
18751 _mark = p->mark;
18752 }
18753 p->mark = _mark;
18754 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18756 }
18757 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18758 if (!_seq) {
18759 PyMem_Free(_children);
18760 p->error_indicator = 1;
18761 PyErr_NoMemory();
18762 D(p->level--);
18763 return NULL;
18764 }
18765 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18766 PyMem_Free(_children);
18767 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18768 D(p->level--);
18769 return _seq;
18770}
18771
18772// _loop1_57: param_no_default
18773static asdl_seq *
18774_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018775{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018776 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018778 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018779 return NULL;
18780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018781 void *_res = NULL;
18782 int _mark = p->mark;
18783 int _start_mark = p->mark;
18784 void **_children = PyMem_Malloc(sizeof(void *));
18785 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018786 p->error_indicator = 1;
18787 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018788 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018789 return NULL;
18790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018791 ssize_t _children_capacity = 1;
18792 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018793 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018795 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018796 return NULL;
18797 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018798 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 -070018799 arg_ty param_no_default_var;
18800 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018801 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018802 )
18803 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018804 _res = param_no_default_var;
18805 if (_n == _children_capacity) {
18806 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018807 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18808 if (!_new_children) {
18809 p->error_indicator = 1;
18810 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018812 return NULL;
18813 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018814 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018816 _children[_n++] = _res;
18817 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018819 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018820 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018823 if (_n == 0 || p->error_indicator) {
18824 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018826 return NULL;
18827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018828 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18829 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018830 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018831 p->error_indicator = 1;
18832 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018834 return NULL;
18835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018836 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18837 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018838 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018840 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018841}
18842
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018843// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018844static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018845_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018847 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018850 return NULL;
18851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018852 void *_res = NULL;
18853 int _mark = p->mark;
18854 int _start_mark = p->mark;
18855 void **_children = PyMem_Malloc(sizeof(void *));
18856 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018857 p->error_indicator = 1;
18858 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018860 return NULL;
18861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018862 ssize_t _children_capacity = 1;
18863 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018864 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018866 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018867 return NULL;
18868 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018869 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 -070018870 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018871 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018872 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018873 )
18874 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018875 _res = param_with_default_var;
18876 if (_n == _children_capacity) {
18877 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018878 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18879 if (!_new_children) {
18880 p->error_indicator = 1;
18881 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018883 return NULL;
18884 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018885 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018887 _children[_n++] = _res;
18888 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018890 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018891 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018894 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18895 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018896 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018897 p->error_indicator = 1;
18898 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018900 return NULL;
18901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018902 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18903 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018904 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018905 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018906 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018907}
18908
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018909// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018910static asdl_seq *
18911_loop1_59_rule(Parser *p)
18912{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018913 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018915 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018916 return NULL;
18917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018918 void *_res = NULL;
18919 int _mark = p->mark;
18920 int _start_mark = p->mark;
18921 void **_children = PyMem_Malloc(sizeof(void *));
18922 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018923 p->error_indicator = 1;
18924 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018925 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018926 return NULL;
18927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018928 ssize_t _children_capacity = 1;
18929 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018930 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018933 return NULL;
18934 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018935 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18936 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018937 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018938 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018939 )
18940 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018941 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018942 if (_n == _children_capacity) {
18943 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018944 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18945 if (!_new_children) {
18946 p->error_indicator = 1;
18947 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018948 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018949 return NULL;
18950 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018951 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018953 _children[_n++] = _res;
18954 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018956 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018957 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018960 if (_n == 0 || p->error_indicator) {
18961 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018962 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018963 return NULL;
18964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018965 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18966 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018967 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018968 p->error_indicator = 1;
18969 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018970 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018971 return NULL;
18972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018973 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18974 PyMem_Free(_children);
18975 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018977 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018978}
18979
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018980// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018981static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018982_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018984 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018985 if (p->error_indicator) {
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 void *_res = NULL;
18990 int _mark = p->mark;
18991 int _start_mark = p->mark;
18992 void **_children = PyMem_Malloc(sizeof(void *));
18993 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018994 p->error_indicator = 1;
18995 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018996 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018997 return NULL;
18998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018999 ssize_t _children_capacity = 1;
19000 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019001 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019003 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019004 return NULL;
19005 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019006 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 +030019007 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019008 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019009 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019010 )
19011 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019012 _res = param_no_default_var;
19013 if (_n == _children_capacity) {
19014 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019015 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19016 if (!_new_children) {
19017 p->error_indicator = 1;
19018 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019019 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019020 return NULL;
19021 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019022 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019024 _children[_n++] = _res;
19025 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019028 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019031 if (_n == 0 || p->error_indicator) {
19032 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019033 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019034 return NULL;
19035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019036 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19037 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019038 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019039 p->error_indicator = 1;
19040 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019041 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019042 return NULL;
19043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019044 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19045 PyMem_Free(_children);
19046 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019047 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019048 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019049}
19050
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019051// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019052static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019053_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019054{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019055 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019057 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019058 return NULL;
19059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019060 void *_res = NULL;
19061 int _mark = p->mark;
19062 int _start_mark = p->mark;
19063 void **_children = PyMem_Malloc(sizeof(void *));
19064 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019065 p->error_indicator = 1;
19066 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019067 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019068 return NULL;
19069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019070 ssize_t _children_capacity = 1;
19071 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019072 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019075 return NULL;
19076 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019077 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 +030019078 arg_ty param_no_default_var;
19079 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019080 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019081 )
19082 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019083 _res = param_no_default_var;
19084 if (_n == _children_capacity) {
19085 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019086 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19087 if (!_new_children) {
19088 p->error_indicator = 1;
19089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019090 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019091 return NULL;
19092 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019093 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019095 _children[_n++] = _res;
19096 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019098 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019099 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019102 if (_n == 0 || p->error_indicator) {
19103 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019104 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019105 return NULL;
19106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019107 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19108 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019109 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019110 p->error_indicator = 1;
19111 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019112 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019113 return NULL;
19114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019115 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19116 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019117 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019118 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019119 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019120}
19121
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019122// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019123static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019124_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019125{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019126 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019127 if (p->error_indicator) {
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 void *_res = NULL;
19132 int _mark = p->mark;
19133 int _start_mark = p->mark;
19134 void **_children = PyMem_Malloc(sizeof(void *));
19135 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019136 p->error_indicator = 1;
19137 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019138 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019139 return NULL;
19140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019141 ssize_t _children_capacity = 1;
19142 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019143 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019146 return NULL;
19147 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019148 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 +030019149 arg_ty param_no_default_var;
19150 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019151 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019152 )
19153 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019154 _res = param_no_default_var;
19155 if (_n == _children_capacity) {
19156 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019157 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19158 if (!_new_children) {
19159 p->error_indicator = 1;
19160 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019161 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019162 return NULL;
19163 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019164 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019166 _children[_n++] = _res;
19167 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019169 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019170 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019173 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19174 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019175 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019176 p->error_indicator = 1;
19177 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019178 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019179 return NULL;
19180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019181 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19182 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019183 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019184 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019185 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019186}
19187
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019188// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019189static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019190_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019191{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019192 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019194 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019195 return NULL;
19196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019197 void *_res = NULL;
19198 int _mark = p->mark;
19199 int _start_mark = p->mark;
19200 void **_children = PyMem_Malloc(sizeof(void *));
19201 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019202 p->error_indicator = 1;
19203 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019204 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019205 return NULL;
19206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019207 ssize_t _children_capacity = 1;
19208 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019209 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019211 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019212 return NULL;
19213 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019214 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 +030019215 NameDefaultPair* param_with_default_var;
19216 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019217 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019218 )
19219 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019220 _res = param_with_default_var;
19221 if (_n == _children_capacity) {
19222 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019223 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19224 if (!_new_children) {
19225 p->error_indicator = 1;
19226 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019227 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019228 return NULL;
19229 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019230 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019232 _children[_n++] = _res;
19233 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019235 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019236 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019239 if (_n == 0 || p->error_indicator) {
19240 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019241 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019242 return NULL;
19243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019244 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19245 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019246 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019247 p->error_indicator = 1;
19248 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019249 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019250 return NULL;
19251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019252 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19253 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019254 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019255 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019256 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019257}
19258
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019259// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019260static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019261_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019262{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019263 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019264 if (p->error_indicator) {
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 void *_res = NULL;
19269 int _mark = p->mark;
19270 int _start_mark = p->mark;
19271 void **_children = PyMem_Malloc(sizeof(void *));
19272 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019273 p->error_indicator = 1;
19274 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019275 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019276 return NULL;
19277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019278 ssize_t _children_capacity = 1;
19279 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019280 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019283 return NULL;
19284 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019285 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19286 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019287 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019288 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019289 )
19290 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019291 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019292 if (_n == _children_capacity) {
19293 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019294 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19295 if (!_new_children) {
19296 p->error_indicator = 1;
19297 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019298 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019299 return NULL;
19300 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019301 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019303 _children[_n++] = _res;
19304 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019306 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019307 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019310 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19311 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019312 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019313 p->error_indicator = 1;
19314 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019315 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019316 return NULL;
19317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019318 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19319 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019320 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019321 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019322 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019323}
19324
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019325// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019326static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019327_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019328{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019329 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019331 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019332 return NULL;
19333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019334 void *_res = NULL;
19335 int _mark = p->mark;
19336 int _start_mark = p->mark;
19337 void **_children = PyMem_Malloc(sizeof(void *));
19338 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019339 p->error_indicator = 1;
19340 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019341 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019342 return NULL;
19343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019344 ssize_t _children_capacity = 1;
19345 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019346 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019349 return NULL;
19350 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019351 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19352 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019353 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019354 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019355 )
19356 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019357 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019358 if (_n == _children_capacity) {
19359 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019360 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19361 if (!_new_children) {
19362 p->error_indicator = 1;
19363 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019364 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019365 return NULL;
19366 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019367 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019369 _children[_n++] = _res;
19370 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019372 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019373 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019376 if (_n == 0 || p->error_indicator) {
19377 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019378 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019379 return NULL;
19380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019381 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19382 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019383 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019384 p->error_indicator = 1;
19385 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019386 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019387 return NULL;
19388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019389 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19390 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019391 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019392 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019393 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019394}
19395
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019396// _loop0_66: param_maybe_default
19397static asdl_seq *
19398_loop0_66_rule(Parser *p)
19399{
19400 D(p->level++);
19401 if (p->error_indicator) {
19402 D(p->level--);
19403 return NULL;
19404 }
19405 void *_res = NULL;
19406 int _mark = p->mark;
19407 int _start_mark = p->mark;
19408 void **_children = PyMem_Malloc(sizeof(void *));
19409 if (!_children) {
19410 p->error_indicator = 1;
19411 PyErr_NoMemory();
19412 D(p->level--);
19413 return NULL;
19414 }
19415 ssize_t _children_capacity = 1;
19416 ssize_t _n = 0;
19417 { // param_maybe_default
19418 if (p->error_indicator) {
19419 D(p->level--);
19420 return NULL;
19421 }
19422 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19423 NameDefaultPair* param_maybe_default_var;
19424 while (
19425 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19426 )
19427 {
19428 _res = param_maybe_default_var;
19429 if (_n == _children_capacity) {
19430 _children_capacity *= 2;
19431 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19432 if (!_new_children) {
19433 p->error_indicator = 1;
19434 PyErr_NoMemory();
19435 D(p->level--);
19436 return NULL;
19437 }
19438 _children = _new_children;
19439 }
19440 _children[_n++] = _res;
19441 _mark = p->mark;
19442 }
19443 p->mark = _mark;
19444 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19446 }
19447 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19448 if (!_seq) {
19449 PyMem_Free(_children);
19450 p->error_indicator = 1;
19451 PyErr_NoMemory();
19452 D(p->level--);
19453 return NULL;
19454 }
19455 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19456 PyMem_Free(_children);
19457 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19458 D(p->level--);
19459 return _seq;
19460}
19461
19462// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019463static asdl_seq *
19464_loop1_67_rule(Parser *p)
19465{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019466 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019467 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019468 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019469 return NULL;
19470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019471 void *_res = NULL;
19472 int _mark = p->mark;
19473 int _start_mark = p->mark;
19474 void **_children = PyMem_Malloc(sizeof(void *));
19475 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019476 p->error_indicator = 1;
19477 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019478 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019479 return NULL;
19480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019481 ssize_t _children_capacity = 1;
19482 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019483 { // param_maybe_default
19484 if (p->error_indicator) {
19485 D(p->level--);
19486 return NULL;
19487 }
19488 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19489 NameDefaultPair* param_maybe_default_var;
19490 while (
19491 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19492 )
19493 {
19494 _res = param_maybe_default_var;
19495 if (_n == _children_capacity) {
19496 _children_capacity *= 2;
19497 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19498 if (!_new_children) {
19499 p->error_indicator = 1;
19500 PyErr_NoMemory();
19501 D(p->level--);
19502 return NULL;
19503 }
19504 _children = _new_children;
19505 }
19506 _children[_n++] = _res;
19507 _mark = p->mark;
19508 }
19509 p->mark = _mark;
19510 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19512 }
19513 if (_n == 0 || p->error_indicator) {
19514 PyMem_Free(_children);
19515 D(p->level--);
19516 return NULL;
19517 }
19518 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19519 if (!_seq) {
19520 PyMem_Free(_children);
19521 p->error_indicator = 1;
19522 PyErr_NoMemory();
19523 D(p->level--);
19524 return NULL;
19525 }
19526 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19527 PyMem_Free(_children);
19528 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19529 D(p->level--);
19530 return _seq;
19531}
19532
19533// _loop1_68: ('@' named_expression NEWLINE)
19534static asdl_seq *
19535_loop1_68_rule(Parser *p)
19536{
19537 D(p->level++);
19538 if (p->error_indicator) {
19539 D(p->level--);
19540 return NULL;
19541 }
19542 void *_res = NULL;
19543 int _mark = p->mark;
19544 int _start_mark = p->mark;
19545 void **_children = PyMem_Malloc(sizeof(void *));
19546 if (!_children) {
19547 p->error_indicator = 1;
19548 PyErr_NoMemory();
19549 D(p->level--);
19550 return NULL;
19551 }
19552 ssize_t _children_capacity = 1;
19553 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019554 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019556 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019557 return NULL;
19558 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019559 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019560 void *_tmp_141_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019561 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019562 (_tmp_141_var = _tmp_141_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019563 )
19564 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019565 _res = _tmp_141_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019566 if (_n == _children_capacity) {
19567 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019568 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19569 if (!_new_children) {
19570 p->error_indicator = 1;
19571 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019572 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019573 return NULL;
19574 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019575 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019577 _children[_n++] = _res;
19578 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019580 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019581 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019584 if (_n == 0 || p->error_indicator) {
19585 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019586 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019587 return NULL;
19588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019589 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19590 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019591 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019592 p->error_indicator = 1;
19593 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019594 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019595 return NULL;
19596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019597 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19598 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019599 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019600 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019601 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019602}
19603
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019604// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019605static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019606_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019607{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019608 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019611 return NULL;
19612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019613 void * _res = NULL;
19614 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019615 { // '(' arguments? ')'
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> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019621 Token * _literal;
19622 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019623 void *z;
19624 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019625 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019626 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019627 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019629 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019630 )
19631 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019632 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019633 _res = z;
19634 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019637 return NULL;
19638 }
19639 goto done;
19640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019641 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019642 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019645 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019646 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019647 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019648 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019649}
19650
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019651// _loop0_71: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019652static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019653_loop0_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019658 return NULL;
19659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019660 void *_res = NULL;
19661 int _mark = p->mark;
19662 int _start_mark = p->mark;
19663 void **_children = PyMem_Malloc(sizeof(void *));
19664 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019665 p->error_indicator = 1;
19666 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019668 return NULL;
19669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019670 ssize_t _children_capacity = 1;
19671 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019672 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019673 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019674 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019675 return NULL;
19676 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019677 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019678 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019679 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019680 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019681 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019682 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019683 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019684 )
19685 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019686 _res = elem;
19687 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019688 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019689 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019691 return NULL;
19692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019693 if (_n == _children_capacity) {
19694 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019695 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19696 if (!_new_children) {
19697 p->error_indicator = 1;
19698 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019699 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019700 return NULL;
19701 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019702 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019704 _children[_n++] = _res;
19705 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019707 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019708 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019711 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19712 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019713 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019714 p->error_indicator = 1;
19715 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019716 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019717 return NULL;
19718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019719 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19720 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019721 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019722 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019723 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019724}
19725
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019726// _gather_70: star_expression _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019727static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019728_gather_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019729{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019730 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019731 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019732 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019733 return NULL;
19734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019735 asdl_seq * _res = NULL;
19736 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019737 { // star_expression _loop0_71
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019739 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019740 return NULL;
19741 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019742 D(fprintf(stderr, "%*c> _gather_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019743 expr_ty elem;
19744 asdl_seq * seq;
19745 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019746 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019747 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019748 (seq = _loop0_71_rule(p)) // _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019749 )
19750 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019751 D(fprintf(stderr, "%*c+ _gather_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019752 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019753 goto done;
19754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019755 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019756 D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
19757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019759 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019760 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019761 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019762 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019763}
19764
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019765// _loop1_72: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019766static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019767_loop1_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019768{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019769 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019770 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019771 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019772 return NULL;
19773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019774 void *_res = NULL;
19775 int _mark = p->mark;
19776 int _start_mark = p->mark;
19777 void **_children = PyMem_Malloc(sizeof(void *));
19778 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019779 p->error_indicator = 1;
19780 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019782 return NULL;
19783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019784 ssize_t _children_capacity = 1;
19785 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019786 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019789 return NULL;
19790 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019791 D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019792 void *_tmp_142_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019793 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019794 (_tmp_142_var = _tmp_142_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019795 )
19796 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019797 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019798 if (_n == _children_capacity) {
19799 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019800 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19801 if (!_new_children) {
19802 p->error_indicator = 1;
19803 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019805 return NULL;
19806 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019807 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019809 _children[_n++] = _res;
19810 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019812 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019813 D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019816 if (_n == 0 || p->error_indicator) {
19817 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019819 return NULL;
19820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019821 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19822 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019823 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019824 p->error_indicator = 1;
19825 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019827 return NULL;
19828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019829 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19830 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019831 _PyPegen_insert_memo(p, _start_mark, _loop1_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019832 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019833 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019834}
19835
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019836// _loop0_74: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019837static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019838_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019839{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019840 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019843 return NULL;
19844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019845 void *_res = NULL;
19846 int _mark = p->mark;
19847 int _start_mark = p->mark;
19848 void **_children = PyMem_Malloc(sizeof(void *));
19849 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019850 p->error_indicator = 1;
19851 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019853 return NULL;
19854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019855 ssize_t _children_capacity = 1;
19856 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019857 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019859 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019860 return NULL;
19861 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019862 D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019863 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019864 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019865 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019866 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019867 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019868 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019869 )
19870 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019871 _res = elem;
19872 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019873 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019874 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019876 return NULL;
19877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019878 if (_n == _children_capacity) {
19879 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019880 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19881 if (!_new_children) {
19882 p->error_indicator = 1;
19883 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019885 return NULL;
19886 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019887 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019889 _children[_n++] = _res;
19890 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019892 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019893 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019896 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19897 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019898 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019899 p->error_indicator = 1;
19900 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019902 return NULL;
19903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019904 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19905 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019906 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019907 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019908 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019909}
19910
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019911// _gather_73: star_named_expression _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019912static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019913_gather_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019914{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019915 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019916 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019918 return NULL;
19919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019920 asdl_seq * _res = NULL;
19921 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019922 { // star_named_expression _loop0_74
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019925 return NULL;
19926 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019927 D(fprintf(stderr, "%*c> _gather_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019928 expr_ty elem;
19929 asdl_seq * seq;
19930 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019931 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019932 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019933 (seq = _loop0_74_rule(p)) // _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019934 )
19935 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019936 D(fprintf(stderr, "%*c+ _gather_73[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019937 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019938 goto done;
19939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019940 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019941 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
19942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019944 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019945 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019946 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019947 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019948}
19949
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019950// _loop1_75: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019951static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019952_loop1_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019953{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019954 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019956 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019957 return NULL;
19958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019959 void *_res = NULL;
19960 int _mark = p->mark;
19961 int _start_mark = p->mark;
19962 void **_children = PyMem_Malloc(sizeof(void *));
19963 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019964 p->error_indicator = 1;
19965 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019966 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019967 return NULL;
19968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019969 ssize_t _children_capacity = 1;
19970 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019971 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019973 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019974 return NULL;
19975 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019976 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019977 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019978 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019979 (_tmp_143_var = _tmp_143_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019980 )
19981 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019982 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019983 if (_n == _children_capacity) {
19984 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019985 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19986 if (!_new_children) {
19987 p->error_indicator = 1;
19988 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019990 return NULL;
19991 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019992 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019994 _children[_n++] = _res;
19995 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019997 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019998 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020001 if (_n == 0 || p->error_indicator) {
20002 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020003 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020004 return NULL;
20005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020006 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20007 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020008 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020009 p->error_indicator = 1;
20010 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020012 return NULL;
20013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020014 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20015 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020016 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020017 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020018 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020019}
20020
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020021// _loop0_76: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020022static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020023_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020024{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020025 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020026 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020028 return NULL;
20029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020030 void *_res = NULL;
20031 int _mark = p->mark;
20032 int _start_mark = p->mark;
20033 void **_children = PyMem_Malloc(sizeof(void *));
20034 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020035 p->error_indicator = 1;
20036 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020038 return NULL;
20039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020040 ssize_t _children_capacity = 1;
20041 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020042 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020045 return NULL;
20046 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020047 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020048 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020049 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020050 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020051 )
20052 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020053 _res = lambda_param_no_default_var;
20054 if (_n == _children_capacity) {
20055 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020056 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20057 if (!_new_children) {
20058 p->error_indicator = 1;
20059 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020060 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020061 return NULL;
20062 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020063 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020065 _children[_n++] = _res;
20066 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020069 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020072 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20073 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020074 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020075 p->error_indicator = 1;
20076 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020077 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020078 return NULL;
20079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020080 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20081 PyMem_Free(_children);
20082 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020083 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020084 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020085}
20086
Guido van Rossum3941d972020-05-01 09:42:03 -070020087// _loop0_77: lambda_param_with_default
20088static asdl_seq *
20089_loop0_77_rule(Parser *p)
20090{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020091 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020092 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020093 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020094 return NULL;
20095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020096 void *_res = NULL;
20097 int _mark = p->mark;
20098 int _start_mark = p->mark;
20099 void **_children = PyMem_Malloc(sizeof(void *));
20100 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020101 p->error_indicator = 1;
20102 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020103 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020104 return NULL;
20105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020106 ssize_t _children_capacity = 1;
20107 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020108 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020109 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020110 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020111 return NULL;
20112 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020113 D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020114 NameDefaultPair* lambda_param_with_default_var;
20115 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020116 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020117 )
20118 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020119 _res = lambda_param_with_default_var;
20120 if (_n == _children_capacity) {
20121 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020122 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20123 if (!_new_children) {
20124 p->error_indicator = 1;
20125 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020126 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020127 return NULL;
20128 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020129 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020131 _children[_n++] = _res;
20132 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020135 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
20136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020138 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20139 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020140 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020141 p->error_indicator = 1;
20142 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020143 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020144 return NULL;
20145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020146 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20147 PyMem_Free(_children);
20148 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020149 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020150 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020151}
20152
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020153// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020154static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020155_loop0_78_rule(Parser *p)
20156{
20157 D(p->level++);
20158 if (p->error_indicator) {
20159 D(p->level--);
20160 return NULL;
20161 }
20162 void *_res = NULL;
20163 int _mark = p->mark;
20164 int _start_mark = p->mark;
20165 void **_children = PyMem_Malloc(sizeof(void *));
20166 if (!_children) {
20167 p->error_indicator = 1;
20168 PyErr_NoMemory();
20169 D(p->level--);
20170 return NULL;
20171 }
20172 ssize_t _children_capacity = 1;
20173 ssize_t _n = 0;
20174 { // lambda_param_with_default
20175 if (p->error_indicator) {
20176 D(p->level--);
20177 return NULL;
20178 }
20179 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20180 NameDefaultPair* lambda_param_with_default_var;
20181 while (
20182 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20183 )
20184 {
20185 _res = lambda_param_with_default_var;
20186 if (_n == _children_capacity) {
20187 _children_capacity *= 2;
20188 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20189 if (!_new_children) {
20190 p->error_indicator = 1;
20191 PyErr_NoMemory();
20192 D(p->level--);
20193 return NULL;
20194 }
20195 _children = _new_children;
20196 }
20197 _children[_n++] = _res;
20198 _mark = p->mark;
20199 }
20200 p->mark = _mark;
20201 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20203 }
20204 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20205 if (!_seq) {
20206 PyMem_Free(_children);
20207 p->error_indicator = 1;
20208 PyErr_NoMemory();
20209 D(p->level--);
20210 return NULL;
20211 }
20212 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20213 PyMem_Free(_children);
20214 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20215 D(p->level--);
20216 return _seq;
20217}
20218
20219// _loop1_79: lambda_param_no_default
20220static asdl_seq *
20221_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020222{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020223 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020225 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020226 return NULL;
20227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020228 void *_res = NULL;
20229 int _mark = p->mark;
20230 int _start_mark = p->mark;
20231 void **_children = PyMem_Malloc(sizeof(void *));
20232 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020233 p->error_indicator = 1;
20234 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020235 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020236 return NULL;
20237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020238 ssize_t _children_capacity = 1;
20239 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020240 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020243 return NULL;
20244 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020245 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020246 arg_ty lambda_param_no_default_var;
20247 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020248 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020249 )
20250 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020251 _res = lambda_param_no_default_var;
20252 if (_n == _children_capacity) {
20253 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020254 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20255 if (!_new_children) {
20256 p->error_indicator = 1;
20257 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020258 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020259 return NULL;
20260 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020261 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020263 _children[_n++] = _res;
20264 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020266 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020267 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020270 if (_n == 0 || p->error_indicator) {
20271 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020272 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020273 return NULL;
20274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020275 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20276 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020277 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020278 p->error_indicator = 1;
20279 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020280 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020281 return NULL;
20282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020283 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20284 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020285 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020287 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020288}
20289
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020290// _loop0_80: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020291static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020292_loop0_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020293{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020294 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020296 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020297 return NULL;
20298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020299 void *_res = NULL;
20300 int _mark = p->mark;
20301 int _start_mark = p->mark;
20302 void **_children = PyMem_Malloc(sizeof(void *));
20303 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020304 p->error_indicator = 1;
20305 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020306 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020307 return NULL;
20308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020309 ssize_t _children_capacity = 1;
20310 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020311 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020314 return NULL;
20315 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020316 D(fprintf(stderr, "%*c> _loop0_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020317 NameDefaultPair* lambda_param_with_default_var;
20318 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020319 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020320 )
20321 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020322 _res = lambda_param_with_default_var;
20323 if (_n == _children_capacity) {
20324 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020325 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20326 if (!_new_children) {
20327 p->error_indicator = 1;
20328 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020329 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020330 return NULL;
20331 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020332 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020334 _children[_n++] = _res;
20335 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020337 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020338 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020341 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20342 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020343 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020344 p->error_indicator = 1;
20345 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020346 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020347 return NULL;
20348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020349 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20350 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020351 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020352 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020353 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020354}
20355
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020356// _loop1_81: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020357static asdl_seq *
20358_loop1_81_rule(Parser *p)
20359{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020360 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020362 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020363 return NULL;
20364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020365 void *_res = NULL;
20366 int _mark = p->mark;
20367 int _start_mark = p->mark;
20368 void **_children = PyMem_Malloc(sizeof(void *));
20369 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020370 p->error_indicator = 1;
20371 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020372 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020373 return NULL;
20374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020375 ssize_t _children_capacity = 1;
20376 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020377 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020379 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020380 return NULL;
20381 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020382 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20383 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020384 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020385 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020386 )
20387 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020388 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020389 if (_n == _children_capacity) {
20390 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020391 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20392 if (!_new_children) {
20393 p->error_indicator = 1;
20394 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020395 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020396 return NULL;
20397 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020398 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020400 _children[_n++] = _res;
20401 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020403 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020404 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020407 if (_n == 0 || p->error_indicator) {
20408 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020409 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020410 return NULL;
20411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020412 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20413 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020414 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020415 p->error_indicator = 1;
20416 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020417 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020418 return NULL;
20419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020420 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20421 PyMem_Free(_children);
20422 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020423 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020424 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020425}
20426
20427// _loop1_82: lambda_param_no_default
20428static asdl_seq *
20429_loop1_82_rule(Parser *p)
20430{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020431 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020433 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020434 return NULL;
20435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020436 void *_res = NULL;
20437 int _mark = p->mark;
20438 int _start_mark = p->mark;
20439 void **_children = PyMem_Malloc(sizeof(void *));
20440 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020441 p->error_indicator = 1;
20442 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020443 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020444 return NULL;
20445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020446 ssize_t _children_capacity = 1;
20447 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020448 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020450 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020451 return NULL;
20452 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020453 D(fprintf(stderr, "%*c> _loop1_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020454 arg_ty lambda_param_no_default_var;
20455 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020456 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020457 )
20458 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020459 _res = lambda_param_no_default_var;
20460 if (_n == _children_capacity) {
20461 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020462 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20463 if (!_new_children) {
20464 p->error_indicator = 1;
20465 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020466 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020467 return NULL;
20468 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020469 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020471 _children[_n++] = _res;
20472 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020475 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020478 if (_n == 0 || p->error_indicator) {
20479 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020480 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020481 return NULL;
20482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020483 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20484 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020485 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020486 p->error_indicator = 1;
20487 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020488 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020489 return NULL;
20490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020491 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20492 PyMem_Free(_children);
20493 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020495 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020496}
20497
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020498// _loop1_83: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020499static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020500_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020502 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020504 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020505 return NULL;
20506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020507 void *_res = NULL;
20508 int _mark = p->mark;
20509 int _start_mark = p->mark;
20510 void **_children = PyMem_Malloc(sizeof(void *));
20511 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020512 p->error_indicator = 1;
20513 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020514 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020515 return NULL;
20516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020517 ssize_t _children_capacity = 1;
20518 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020519 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020522 return NULL;
20523 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020524 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020525 arg_ty lambda_param_no_default_var;
20526 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020527 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020528 )
20529 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020530 _res = lambda_param_no_default_var;
20531 if (_n == _children_capacity) {
20532 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020533 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20534 if (!_new_children) {
20535 p->error_indicator = 1;
20536 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020537 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020538 return NULL;
20539 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020540 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020542 _children[_n++] = _res;
20543 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020545 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020546 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020549 if (_n == 0 || p->error_indicator) {
20550 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020551 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020552 return NULL;
20553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020554 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20555 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020556 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020557 p->error_indicator = 1;
20558 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020559 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020560 return NULL;
20561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020562 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20563 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020564 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020565 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020566 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020567}
20568
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020569// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020570static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020571_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020572{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020573 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020574 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020575 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020576 return NULL;
20577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020578 void *_res = NULL;
20579 int _mark = p->mark;
20580 int _start_mark = p->mark;
20581 void **_children = PyMem_Malloc(sizeof(void *));
20582 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020583 p->error_indicator = 1;
20584 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020585 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020586 return NULL;
20587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020588 ssize_t _children_capacity = 1;
20589 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020590 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020591 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020592 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020593 return NULL;
20594 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020595 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 -070020596 arg_ty lambda_param_no_default_var;
20597 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020598 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020599 )
20600 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020601 _res = lambda_param_no_default_var;
20602 if (_n == _children_capacity) {
20603 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020604 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20605 if (!_new_children) {
20606 p->error_indicator = 1;
20607 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020608 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020609 return NULL;
20610 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020611 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020613 _children[_n++] = _res;
20614 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020616 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020617 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020620 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20621 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020622 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020623 p->error_indicator = 1;
20624 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020625 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020626 return NULL;
20627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020628 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20629 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020630 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020631 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020632 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020633}
20634
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020635// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020636static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020637_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020638{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020639 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020641 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020642 return NULL;
20643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020644 void *_res = NULL;
20645 int _mark = p->mark;
20646 int _start_mark = p->mark;
20647 void **_children = PyMem_Malloc(sizeof(void *));
20648 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020649 p->error_indicator = 1;
20650 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020652 return NULL;
20653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020654 ssize_t _children_capacity = 1;
20655 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020656 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020659 return NULL;
20660 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020661 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 -070020662 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020663 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020664 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020665 )
20666 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020667 _res = lambda_param_with_default_var;
20668 if (_n == _children_capacity) {
20669 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020670 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20671 if (!_new_children) {
20672 p->error_indicator = 1;
20673 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020675 return NULL;
20676 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020677 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020679 _children[_n++] = _res;
20680 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020682 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020683 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020686 if (_n == 0 || p->error_indicator) {
20687 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020688 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020689 return NULL;
20690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020691 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20692 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020693 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020694 p->error_indicator = 1;
20695 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020697 return NULL;
20698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020699 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20700 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020701 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020703 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020704}
20705
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020706// _loop0_86: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020707static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020708_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020709{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020710 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020713 return NULL;
20714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020715 void *_res = NULL;
20716 int _mark = p->mark;
20717 int _start_mark = p->mark;
20718 void **_children = PyMem_Malloc(sizeof(void *));
20719 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020720 p->error_indicator = 1;
20721 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020722 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020723 return NULL;
20724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020725 ssize_t _children_capacity = 1;
20726 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020727 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020730 return NULL;
20731 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020732 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20733 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020734 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020735 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020736 )
20737 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020738 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020739 if (_n == _children_capacity) {
20740 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020741 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20742 if (!_new_children) {
20743 p->error_indicator = 1;
20744 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020746 return NULL;
20747 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020748 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020750 _children[_n++] = _res;
20751 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020753 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020754 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
20755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020757 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20758 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020759 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020760 p->error_indicator = 1;
20761 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020763 return NULL;
20764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020765 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20766 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020767 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020768 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020769 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020770}
20771
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020772// _loop1_87: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020773static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020774_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020775{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020776 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020779 return NULL;
20780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020781 void *_res = NULL;
20782 int _mark = p->mark;
20783 int _start_mark = p->mark;
20784 void **_children = PyMem_Malloc(sizeof(void *));
20785 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020786 p->error_indicator = 1;
20787 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020788 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020789 return NULL;
20790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020791 ssize_t _children_capacity = 1;
20792 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020793 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020795 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020796 return NULL;
20797 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020798 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20799 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020800 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020801 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020802 )
20803 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020804 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020805 if (_n == _children_capacity) {
20806 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020807 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20808 if (!_new_children) {
20809 p->error_indicator = 1;
20810 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020812 return NULL;
20813 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020814 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020816 _children[_n++] = _res;
20817 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020819 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020820 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
20821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020823 if (_n == 0 || p->error_indicator) {
20824 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020825 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020826 return NULL;
20827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020828 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20829 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020830 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020831 p->error_indicator = 1;
20832 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020834 return NULL;
20835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020836 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20837 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020838 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020840 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020841}
20842
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020843// _loop0_88: lambda_param_maybe_default
20844static asdl_seq *
20845_loop0_88_rule(Parser *p)
20846{
20847 D(p->level++);
20848 if (p->error_indicator) {
20849 D(p->level--);
20850 return NULL;
20851 }
20852 void *_res = NULL;
20853 int _mark = p->mark;
20854 int _start_mark = p->mark;
20855 void **_children = PyMem_Malloc(sizeof(void *));
20856 if (!_children) {
20857 p->error_indicator = 1;
20858 PyErr_NoMemory();
20859 D(p->level--);
20860 return NULL;
20861 }
20862 ssize_t _children_capacity = 1;
20863 ssize_t _n = 0;
20864 { // lambda_param_maybe_default
20865 if (p->error_indicator) {
20866 D(p->level--);
20867 return NULL;
20868 }
20869 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20870 NameDefaultPair* lambda_param_maybe_default_var;
20871 while (
20872 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20873 )
20874 {
20875 _res = lambda_param_maybe_default_var;
20876 if (_n == _children_capacity) {
20877 _children_capacity *= 2;
20878 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20879 if (!_new_children) {
20880 p->error_indicator = 1;
20881 PyErr_NoMemory();
20882 D(p->level--);
20883 return NULL;
20884 }
20885 _children = _new_children;
20886 }
20887 _children[_n++] = _res;
20888 _mark = p->mark;
20889 }
20890 p->mark = _mark;
20891 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
20892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20893 }
20894 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20895 if (!_seq) {
20896 PyMem_Free(_children);
20897 p->error_indicator = 1;
20898 PyErr_NoMemory();
20899 D(p->level--);
20900 return NULL;
20901 }
20902 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20903 PyMem_Free(_children);
20904 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
20905 D(p->level--);
20906 return _seq;
20907}
20908
20909// _loop1_89: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020910static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020911_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020912{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020913 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020915 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020916 return NULL;
20917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020918 void *_res = NULL;
20919 int _mark = p->mark;
20920 int _start_mark = p->mark;
20921 void **_children = PyMem_Malloc(sizeof(void *));
20922 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020923 p->error_indicator = 1;
20924 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020925 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020926 return NULL;
20927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020928 ssize_t _children_capacity = 1;
20929 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020930 { // lambda_param_maybe_default
20931 if (p->error_indicator) {
20932 D(p->level--);
20933 return NULL;
20934 }
20935 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20936 NameDefaultPair* lambda_param_maybe_default_var;
20937 while (
20938 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20939 )
20940 {
20941 _res = lambda_param_maybe_default_var;
20942 if (_n == _children_capacity) {
20943 _children_capacity *= 2;
20944 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20945 if (!_new_children) {
20946 p->error_indicator = 1;
20947 PyErr_NoMemory();
20948 D(p->level--);
20949 return NULL;
20950 }
20951 _children = _new_children;
20952 }
20953 _children[_n++] = _res;
20954 _mark = p->mark;
20955 }
20956 p->mark = _mark;
20957 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
20958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20959 }
20960 if (_n == 0 || p->error_indicator) {
20961 PyMem_Free(_children);
20962 D(p->level--);
20963 return NULL;
20964 }
20965 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20966 if (!_seq) {
20967 PyMem_Free(_children);
20968 p->error_indicator = 1;
20969 PyErr_NoMemory();
20970 D(p->level--);
20971 return NULL;
20972 }
20973 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20974 PyMem_Free(_children);
20975 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
20976 D(p->level--);
20977 return _seq;
20978}
20979
20980// _loop1_90: ('or' conjunction)
20981static asdl_seq *
20982_loop1_90_rule(Parser *p)
20983{
20984 D(p->level++);
20985 if (p->error_indicator) {
20986 D(p->level--);
20987 return NULL;
20988 }
20989 void *_res = NULL;
20990 int _mark = p->mark;
20991 int _start_mark = p->mark;
20992 void **_children = PyMem_Malloc(sizeof(void *));
20993 if (!_children) {
20994 p->error_indicator = 1;
20995 PyErr_NoMemory();
20996 D(p->level--);
20997 return NULL;
20998 }
20999 ssize_t _children_capacity = 1;
21000 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021001 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021003 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021004 return NULL;
21005 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021006 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021007 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021008 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021009 (_tmp_144_var = _tmp_144_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021010 )
21011 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021012 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021013 if (_n == _children_capacity) {
21014 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021015 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21016 if (!_new_children) {
21017 p->error_indicator = 1;
21018 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021020 return NULL;
21021 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021022 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021024 _children[_n++] = _res;
21025 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021027 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021028 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021031 if (_n == 0 || p->error_indicator) {
21032 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021034 return NULL;
21035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021036 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21037 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021038 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021039 p->error_indicator = 1;
21040 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021041 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021042 return NULL;
21043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021044 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21045 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021046 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021047 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021048 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021049}
21050
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021051// _loop1_91: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021052static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021053_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021054{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021055 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021057 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021058 return NULL;
21059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021060 void *_res = NULL;
21061 int _mark = p->mark;
21062 int _start_mark = p->mark;
21063 void **_children = PyMem_Malloc(sizeof(void *));
21064 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021065 p->error_indicator = 1;
21066 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021067 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021068 return NULL;
21069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021070 ssize_t _children_capacity = 1;
21071 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021072 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021075 return NULL;
21076 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021077 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021078 void *_tmp_145_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021079 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021080 (_tmp_145_var = _tmp_145_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021081 )
21082 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021083 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021084 if (_n == _children_capacity) {
21085 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021086 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21087 if (!_new_children) {
21088 p->error_indicator = 1;
21089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021090 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021091 return NULL;
21092 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021093 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021095 _children[_n++] = _res;
21096 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021098 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021099 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021102 if (_n == 0 || p->error_indicator) {
21103 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021105 return NULL;
21106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021107 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21108 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021109 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021110 p->error_indicator = 1;
21111 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021112 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021113 return NULL;
21114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021115 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21116 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021117 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021118 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021119 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021120}
21121
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021122// _loop1_92: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021123static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021124_loop1_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021125{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021126 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021127 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021129 return NULL;
21130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021131 void *_res = NULL;
21132 int _mark = p->mark;
21133 int _start_mark = p->mark;
21134 void **_children = PyMem_Malloc(sizeof(void *));
21135 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021136 p->error_indicator = 1;
21137 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021139 return NULL;
21140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021141 ssize_t _children_capacity = 1;
21142 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021143 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021146 return NULL;
21147 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021148 D(fprintf(stderr, "%*c> _loop1_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021149 CmpopExprPair* compare_op_bitwise_or_pair_var;
21150 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021151 (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 +010021152 )
21153 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021154 _res = compare_op_bitwise_or_pair_var;
21155 if (_n == _children_capacity) {
21156 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021157 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21158 if (!_new_children) {
21159 p->error_indicator = 1;
21160 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021162 return NULL;
21163 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021164 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021166 _children[_n++] = _res;
21167 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021169 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021170 D(fprintf(stderr, "%*c%s _loop1_92[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021173 if (_n == 0 || p->error_indicator) {
21174 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021175 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021176 return NULL;
21177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021178 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21179 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021180 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021181 p->error_indicator = 1;
21182 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021183 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021184 return NULL;
21185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021186 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21187 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021188 _PyPegen_insert_memo(p, _start_mark, _loop1_92_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021189 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021190 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021191}
21192
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021193// _tmp_93: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021194static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021195_tmp_93_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021196{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021197 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021199 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021200 return NULL;
21201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021202 void * _res = NULL;
21203 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021204 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021205 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021206 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021207 return NULL;
21208 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021209 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021210 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021211 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021212 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021213 )
21214 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021215 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021216 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
21217 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021218 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021219 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021220 return NULL;
21221 }
21222 goto done;
21223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021224 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021225 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021228 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021229 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021230 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021231 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021232}
21233
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021234// _loop0_95: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021235static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021236_loop0_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021237{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021238 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021240 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021241 return NULL;
21242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021243 void *_res = NULL;
21244 int _mark = p->mark;
21245 int _start_mark = p->mark;
21246 void **_children = PyMem_Malloc(sizeof(void *));
21247 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021248 p->error_indicator = 1;
21249 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021251 return NULL;
21252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021253 ssize_t _children_capacity = 1;
21254 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021255 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021258 return NULL;
21259 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021260 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021261 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021262 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021263 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021264 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021265 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021266 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021267 )
21268 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021269 _res = elem;
21270 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021271 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021272 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021274 return NULL;
21275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021276 if (_n == _children_capacity) {
21277 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021278 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21279 if (!_new_children) {
21280 p->error_indicator = 1;
21281 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021283 return NULL;
21284 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021285 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021287 _children[_n++] = _res;
21288 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021290 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021291 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021294 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21295 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021296 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021297 p->error_indicator = 1;
21298 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021300 return NULL;
21301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021302 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21303 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021304 _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021305 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021306 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021307}
21308
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021309// _gather_94: slice _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021310static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021311_gather_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021312{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021313 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021315 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021316 return NULL;
21317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021318 asdl_seq * _res = NULL;
21319 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021320 { // slice _loop0_95
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021321 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021322 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021323 return NULL;
21324 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021325 D(fprintf(stderr, "%*c> _gather_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021326 expr_ty elem;
21327 asdl_seq * seq;
21328 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021329 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021330 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021331 (seq = _loop0_95_rule(p)) // _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021332 )
21333 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021334 D(fprintf(stderr, "%*c+ _gather_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_95"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021335 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021336 goto done;
21337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021338 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021339 D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ',
21340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021342 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021343 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021344 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021345 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021346}
21347
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021348// _tmp_96: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021349static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021350_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021351{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021352 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021353 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021354 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021355 return NULL;
21356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021357 void * _res = NULL;
21358 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021359 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021362 return NULL;
21363 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021364 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021365 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021366 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021367 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021368 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021369 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021370 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021371 )
21372 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021373 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021374 _res = d;
21375 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021378 return NULL;
21379 }
21380 goto done;
21381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021382 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021383 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021386 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021387 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021388 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021389 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021390}
21391
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021392// _tmp_97: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021393static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021394_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021395{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021396 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021397 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021398 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021399 return NULL;
21400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021401 void * _res = NULL;
21402 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021403 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021405 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021406 return NULL;
21407 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021408 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021409 expr_ty tuple_var;
21410 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021411 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021412 )
21413 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021414 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021415 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021416 goto done;
21417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021418 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021419 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021421 }
21422 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021423 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021424 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021425 return NULL;
21426 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021427 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021428 expr_ty group_var;
21429 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021430 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021431 )
21432 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021433 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021434 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021435 goto done;
21436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021437 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021438 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021440 }
21441 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021443 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021444 return NULL;
21445 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021446 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021447 expr_ty genexp_var;
21448 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021449 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021450 )
21451 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021452 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021453 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021454 goto done;
21455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021456 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021457 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021460 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021461 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021462 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021463 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021464}
21465
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021466// _tmp_98: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021467static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021468_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021469{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021470 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021473 return NULL;
21474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021475 void * _res = NULL;
21476 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021477 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021478 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021479 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021480 return NULL;
21481 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021482 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021483 expr_ty list_var;
21484 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021485 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021486 )
21487 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021488 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021489 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021490 goto done;
21491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021492 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021493 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021495 }
21496 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021497 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021498 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021499 return NULL;
21500 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021501 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021502 expr_ty listcomp_var;
21503 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021504 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021505 )
21506 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021507 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021508 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021509 goto done;
21510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021511 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021512 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021515 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021516 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021517 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021518 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021519}
21520
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021521// _tmp_99: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021522static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021523_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021524{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021525 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021527 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021528 return NULL;
21529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021530 void * _res = NULL;
21531 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021532 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021533 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021534 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021535 return NULL;
21536 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021537 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021538 expr_ty dict_var;
21539 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021540 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021541 )
21542 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021543 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021544 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021545 goto done;
21546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021547 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021548 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021550 }
21551 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021554 return NULL;
21555 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021556 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021557 expr_ty set_var;
21558 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021559 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021560 )
21561 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021562 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021563 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021564 goto done;
21565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021566 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021567 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021569 }
21570 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021572 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021573 return NULL;
21574 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021575 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021576 expr_ty dictcomp_var;
21577 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021578 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021579 )
21580 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021581 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021582 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021583 goto done;
21584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021585 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021586 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021588 }
21589 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021591 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021592 return NULL;
21593 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021594 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021595 expr_ty setcomp_var;
21596 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021597 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021598 )
21599 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021600 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021601 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021602 goto done;
21603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021604 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021605 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021608 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021609 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021610 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021611 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021612}
21613
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021614// _loop1_100: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021615static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021616_loop1_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021617{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021618 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021621 return NULL;
21622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021623 void *_res = NULL;
21624 int _mark = p->mark;
21625 int _start_mark = p->mark;
21626 void **_children = PyMem_Malloc(sizeof(void *));
21627 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021628 p->error_indicator = 1;
21629 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021631 return NULL;
21632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021633 ssize_t _children_capacity = 1;
21634 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021635 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021636 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021637 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021638 return NULL;
21639 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021640 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021641 expr_ty string_var;
21642 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021643 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021644 )
21645 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021646 _res = string_var;
21647 if (_n == _children_capacity) {
21648 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021649 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21650 if (!_new_children) {
21651 p->error_indicator = 1;
21652 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021653 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021654 return NULL;
21655 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021656 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021658 _children[_n++] = _res;
21659 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021661 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021662 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021665 if (_n == 0 || p->error_indicator) {
21666 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021668 return NULL;
21669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021670 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21671 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021672 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021673 p->error_indicator = 1;
21674 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021675 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021676 return NULL;
21677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021678 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21679 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021680 _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021681 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021682 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021683}
21684
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021685// _tmp_101: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021686static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021687_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021688{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021689 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021690 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021692 return NULL;
21693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021694 void * _res = NULL;
21695 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021696 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021699 return NULL;
21700 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021701 D(fprintf(stderr, "%*c> _tmp_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021702 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021703 expr_ty y;
21704 void *z;
21705 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021706 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021707 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021708 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021709 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021710 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021711 )
21712 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021713 D(fprintf(stderr, "%*c+ _tmp_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021714 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21715 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021716 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021718 return NULL;
21719 }
21720 goto done;
21721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021722 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021723 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021726 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021727 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021728 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021729 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021730}
21731
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021732// _tmp_102: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021733static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021734_tmp_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021735{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021736 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021737 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021738 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021739 return NULL;
21740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021741 void * _res = NULL;
21742 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021743 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021745 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021746 return NULL;
21747 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021748 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021749 expr_ty yield_expr_var;
21750 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021751 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021752 )
21753 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021754 D(fprintf(stderr, "%*c+ _tmp_102[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021755 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021756 goto done;
21757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021758 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021759 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021761 }
21762 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021763 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021764 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021765 return NULL;
21766 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021767 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021768 expr_ty named_expression_var;
21769 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021770 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021771 )
21772 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021773 D(fprintf(stderr, "%*c+ _tmp_102[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021774 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021775 goto done;
21776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021777 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021778 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021781 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021782 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021783 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021784 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021785}
21786
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021787// _loop0_104: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021788static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021789_loop0_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021790{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021791 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021794 return NULL;
21795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021796 void *_res = NULL;
21797 int _mark = p->mark;
21798 int _start_mark = p->mark;
21799 void **_children = PyMem_Malloc(sizeof(void *));
21800 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021801 p->error_indicator = 1;
21802 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021804 return NULL;
21805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021806 ssize_t _children_capacity = 1;
21807 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021808 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021809 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021810 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021811 return NULL;
21812 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021813 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021814 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021815 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021816 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021817 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021818 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021819 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021820 )
21821 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021822 _res = elem;
21823 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021824 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021825 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021827 return NULL;
21828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021829 if (_n == _children_capacity) {
21830 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021831 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21832 if (!_new_children) {
21833 p->error_indicator = 1;
21834 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021836 return NULL;
21837 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021838 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021840 _children[_n++] = _res;
21841 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021843 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021844 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021847 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21848 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021849 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021850 p->error_indicator = 1;
21851 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021853 return NULL;
21854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021855 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21856 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021857 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021858 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021859 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021860}
21861
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021862// _gather_103: double_starred_kvpair _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021863static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021864_gather_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021865{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021866 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021867 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021869 return NULL;
21870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021871 asdl_seq * _res = NULL;
21872 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021873 { // double_starred_kvpair _loop0_104
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021876 return NULL;
21877 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021878 D(fprintf(stderr, "%*c> _gather_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021879 KeyValuePair* elem;
21880 asdl_seq * seq;
21881 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021882 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021883 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021884 (seq = _loop0_104_rule(p)) // _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021885 )
21886 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021887 D(fprintf(stderr, "%*c+ _gather_103[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021888 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021889 goto done;
21890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021891 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021892 D(fprintf(stderr, "%*c%s _gather_103[%d-%d]: %s failed!\n", p->level, ' ',
21893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021895 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021896 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021897 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021898 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021899}
21900
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021901// _loop1_105: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021902static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021903_loop1_105_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021904{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021905 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021907 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021908 return NULL;
21909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021910 void *_res = NULL;
21911 int _mark = p->mark;
21912 int _start_mark = p->mark;
21913 void **_children = PyMem_Malloc(sizeof(void *));
21914 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021915 p->error_indicator = 1;
21916 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021918 return NULL;
21919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021920 ssize_t _children_capacity = 1;
21921 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021922 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021925 return NULL;
21926 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021927 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021928 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021929 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021930 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021931 )
21932 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021933 _res = for_if_clause_var;
21934 if (_n == _children_capacity) {
21935 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021936 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21937 if (!_new_children) {
21938 p->error_indicator = 1;
21939 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021940 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021941 return NULL;
21942 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021943 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021945 _children[_n++] = _res;
21946 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021948 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021949 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021952 if (_n == 0 || p->error_indicator) {
21953 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021955 return NULL;
21956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021957 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21958 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021959 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021960 p->error_indicator = 1;
21961 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021962 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021963 return NULL;
21964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021965 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21966 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021967 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021968 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021969 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021970}
21971
Guido van Rossum3941d972020-05-01 09:42:03 -070021972// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070021973static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021974_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070021975{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021976 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070021977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021978 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070021979 return NULL;
21980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021981 void *_res = NULL;
21982 int _mark = p->mark;
21983 int _start_mark = p->mark;
21984 void **_children = PyMem_Malloc(sizeof(void *));
21985 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021986 p->error_indicator = 1;
21987 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021988 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021989 return NULL;
21990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021991 ssize_t _children_capacity = 1;
21992 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021993 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021996 return NULL;
21997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021998 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021999 void *_tmp_146_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022000 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022001 (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070022002 )
22003 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022004 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022005 if (_n == _children_capacity) {
22006 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022007 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22008 if (!_new_children) {
22009 p->error_indicator = 1;
22010 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022011 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022012 return NULL;
22013 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022014 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022016 _children[_n++] = _res;
22017 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022019 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022020 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
22021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022023 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22024 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022025 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022026 p->error_indicator = 1;
22027 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022028 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022029 return NULL;
22030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022031 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22032 PyMem_Free(_children);
22033 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022034 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022035 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022036}
22037
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022038// _loop0_107: ('if' disjunction)
22039static asdl_seq *
22040_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022041{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022042 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022044 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022045 return NULL;
22046 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022047 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022048 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022049 int _start_mark = p->mark;
22050 void **_children = PyMem_Malloc(sizeof(void *));
22051 if (!_children) {
22052 p->error_indicator = 1;
22053 PyErr_NoMemory();
22054 D(p->level--);
22055 return NULL;
22056 }
22057 ssize_t _children_capacity = 1;
22058 ssize_t _n = 0;
22059 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022061 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022062 return NULL;
22063 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022064 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022065 void *_tmp_147_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022066 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022067 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022068 )
22069 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022070 _res = _tmp_147_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022071 if (_n == _children_capacity) {
22072 _children_capacity *= 2;
22073 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22074 if (!_new_children) {
22075 p->error_indicator = 1;
22076 PyErr_NoMemory();
22077 D(p->level--);
22078 return NULL;
22079 }
22080 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022081 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022082 _children[_n++] = _res;
22083 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022085 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022086 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
22087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022088 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022089 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22090 if (!_seq) {
22091 PyMem_Free(_children);
22092 p->error_indicator = 1;
22093 PyErr_NoMemory();
22094 D(p->level--);
22095 return NULL;
22096 }
22097 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22098 PyMem_Free(_children);
22099 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022100 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022101 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022102}
22103
Guido van Rossum3941d972020-05-01 09:42:03 -070022104// _tmp_108: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022105static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022106_tmp_108_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022107{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022108 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022109 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022110 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022111 return NULL;
22112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022113 void * _res = NULL;
22114 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022115 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022117 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022118 return NULL;
22119 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022120 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022121 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022122 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022123 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022124 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022125 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022126 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022127 )
22128 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022129 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022130 _res = c;
22131 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022132 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022133 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022134 return NULL;
22135 }
22136 goto done;
22137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022138 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022139 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
22140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022142 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022143 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022144 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022145 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022146}
22147
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022148// _tmp_109: ',' args
22149static void *
22150_tmp_109_rule(Parser *p)
22151{
22152 D(p->level++);
22153 if (p->error_indicator) {
22154 D(p->level--);
22155 return NULL;
22156 }
22157 void * _res = NULL;
22158 int _mark = p->mark;
22159 { // ',' args
22160 if (p->error_indicator) {
22161 D(p->level--);
22162 return NULL;
22163 }
22164 D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
22165 Token * _literal;
22166 expr_ty c;
22167 if (
22168 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22169 &&
22170 (c = args_rule(p)) // args
22171 )
22172 {
22173 D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
22174 _res = c;
22175 if (_res == NULL && PyErr_Occurred()) {
22176 p->error_indicator = 1;
22177 D(p->level--);
22178 return NULL;
22179 }
22180 goto done;
22181 }
22182 p->mark = _mark;
22183 D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ',
22184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
22185 }
22186 _res = NULL;
22187 done:
22188 D(p->level--);
22189 return _res;
22190}
22191
22192// _loop0_111: ',' kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022193static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022194_loop0_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022195{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022196 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022198 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022199 return NULL;
22200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022201 void *_res = NULL;
22202 int _mark = p->mark;
22203 int _start_mark = p->mark;
22204 void **_children = PyMem_Malloc(sizeof(void *));
22205 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022206 p->error_indicator = 1;
22207 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022208 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022209 return NULL;
22210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022211 ssize_t _children_capacity = 1;
22212 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022213 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022215 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022216 return NULL;
22217 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022218 D(fprintf(stderr, "%*c> _loop0_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022219 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022220 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022221 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022222 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022223 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022224 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022225 )
22226 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022227 _res = elem;
22228 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022229 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022230 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022231 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022232 return NULL;
22233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022234 if (_n == _children_capacity) {
22235 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022236 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22237 if (!_new_children) {
22238 p->error_indicator = 1;
22239 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022240 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022241 return NULL;
22242 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022243 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022245 _children[_n++] = _res;
22246 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022248 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022249 D(fprintf(stderr, "%*c%s _loop0_111[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022252 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22253 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022254 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022255 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022260 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22261 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022262 _PyPegen_insert_memo(p, _start_mark, _loop0_111_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022263 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022264 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022265}
22266
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022267// _gather_110: kwarg_or_starred _loop0_111
Guido van Rossum3941d972020-05-01 09:42:03 -070022268static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022269_gather_110_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022270{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022271 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022272 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022273 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022274 return NULL;
22275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022276 asdl_seq * _res = NULL;
22277 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022278 { // kwarg_or_starred _loop0_111
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022281 return NULL;
22282 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022283 D(fprintf(stderr, "%*c> _gather_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_111"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022284 KeywordOrStarred* elem;
22285 asdl_seq * seq;
22286 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022287 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022288 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022289 (seq = _loop0_111_rule(p)) // _loop0_111
Guido van Rossum3941d972020-05-01 09:42:03 -070022290 )
22291 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022292 D(fprintf(stderr, "%*c+ _gather_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_111"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022293 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022294 goto done;
22295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022296 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022297 D(fprintf(stderr, "%*c%s _gather_110[%d-%d]: %s failed!\n", p->level, ' ',
22298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_111"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022300 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022303 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022304}
22305
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022306// _loop0_113: ',' kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022307static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022308_loop0_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022310 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022312 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022313 return NULL;
22314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022315 void *_res = NULL;
22316 int _mark = p->mark;
22317 int _start_mark = p->mark;
22318 void **_children = PyMem_Malloc(sizeof(void *));
22319 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022320 p->error_indicator = 1;
22321 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022322 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022323 return NULL;
22324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022325 ssize_t _children_capacity = 1;
22326 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022327 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022330 return NULL;
22331 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022332 D(fprintf(stderr, "%*c> _loop0_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022333 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022334 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022335 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022336 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022337 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022338 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022339 )
22340 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022341 _res = elem;
22342 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022343 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022344 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022345 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022346 return NULL;
22347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022348 if (_n == _children_capacity) {
22349 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022350 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22351 if (!_new_children) {
22352 p->error_indicator = 1;
22353 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022354 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022355 return NULL;
22356 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022357 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022359 _children[_n++] = _res;
22360 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022362 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022363 D(fprintf(stderr, "%*c%s _loop0_113[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022366 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22367 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022368 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022369 p->error_indicator = 1;
22370 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022371 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022372 return NULL;
22373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022374 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22375 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022376 _PyPegen_insert_memo(p, _start_mark, _loop0_113_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022377 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022378 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022379}
22380
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022381// _gather_112: kwarg_or_double_starred _loop0_113
Guido van Rossum3941d972020-05-01 09:42:03 -070022382static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022383_gather_112_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022384{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022385 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022387 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022388 return NULL;
22389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022390 asdl_seq * _res = NULL;
22391 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022392 { // kwarg_or_double_starred _loop0_113
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022394 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022395 return NULL;
22396 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022397 D(fprintf(stderr, "%*c> _gather_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022398 KeywordOrStarred* elem;
22399 asdl_seq * seq;
22400 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022401 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022402 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022403 (seq = _loop0_113_rule(p)) // _loop0_113
Guido van Rossum3941d972020-05-01 09:42:03 -070022404 )
22405 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022406 D(fprintf(stderr, "%*c+ _gather_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022407 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022408 goto done;
22409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022410 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022411 D(fprintf(stderr, "%*c%s _gather_112[%d-%d]: %s failed!\n", p->level, ' ',
22412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022414 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022415 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022416 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022417 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022418}
22419
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022420// _loop0_115: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022421static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022422_loop0_115_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022423{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022424 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022426 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022427 return NULL;
22428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022429 void *_res = NULL;
22430 int _mark = p->mark;
22431 int _start_mark = p->mark;
22432 void **_children = PyMem_Malloc(sizeof(void *));
22433 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022434 p->error_indicator = 1;
22435 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022436 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022437 return NULL;
22438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022439 ssize_t _children_capacity = 1;
22440 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022441 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022443 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022444 return NULL;
22445 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022446 D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022447 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022448 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022449 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022450 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022451 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022452 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022453 )
22454 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022455 _res = elem;
22456 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022457 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022458 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022459 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022460 return NULL;
22461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022462 if (_n == _children_capacity) {
22463 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022464 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22465 if (!_new_children) {
22466 p->error_indicator = 1;
22467 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022468 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022469 return NULL;
22470 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022471 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022473 _children[_n++] = _res;
22474 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022476 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022477 D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022480 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22481 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022482 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022483 p->error_indicator = 1;
22484 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022485 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022486 return NULL;
22487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022488 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22489 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022490 _PyPegen_insert_memo(p, _start_mark, _loop0_115_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022492 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022493}
22494
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022495// _gather_114: kwarg_or_starred _loop0_115
Guido van Rossumc001c092020-04-30 12:12:19 -070022496static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022497_gather_114_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022498{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022499 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022501 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022502 return NULL;
22503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022504 asdl_seq * _res = NULL;
22505 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022506 { // kwarg_or_starred _loop0_115
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022509 return NULL;
22510 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022511 D(fprintf(stderr, "%*c> _gather_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_115"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022512 KeywordOrStarred* elem;
22513 asdl_seq * seq;
22514 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022515 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022516 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022517 (seq = _loop0_115_rule(p)) // _loop0_115
Guido van Rossumc001c092020-04-30 12:12:19 -070022518 )
22519 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022520 D(fprintf(stderr, "%*c+ _gather_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_115"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022521 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022522 goto done;
22523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022524 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022525 D(fprintf(stderr, "%*c%s _gather_114[%d-%d]: %s failed!\n", p->level, ' ',
22526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_115"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022528 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022529 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022530 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022531 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022532}
22533
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022534// _loop0_117: ',' kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022535static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022536_loop0_117_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022537{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022538 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022539 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022540 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022541 return NULL;
22542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022543 void *_res = NULL;
22544 int _mark = p->mark;
22545 int _start_mark = p->mark;
22546 void **_children = PyMem_Malloc(sizeof(void *));
22547 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022548 p->error_indicator = 1;
22549 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022550 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022551 return NULL;
22552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022553 ssize_t _children_capacity = 1;
22554 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022555 { // ',' kwarg_or_double_starred
22556 if (p->error_indicator) {
22557 D(p->level--);
22558 return NULL;
22559 }
22560 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22561 Token * _literal;
22562 KeywordOrStarred* elem;
22563 while (
22564 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22565 &&
22566 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22567 )
22568 {
22569 _res = elem;
22570 if (_res == NULL && PyErr_Occurred()) {
22571 p->error_indicator = 1;
22572 PyMem_Free(_children);
22573 D(p->level--);
22574 return NULL;
22575 }
22576 if (_n == _children_capacity) {
22577 _children_capacity *= 2;
22578 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22579 if (!_new_children) {
22580 p->error_indicator = 1;
22581 PyErr_NoMemory();
22582 D(p->level--);
22583 return NULL;
22584 }
22585 _children = _new_children;
22586 }
22587 _children[_n++] = _res;
22588 _mark = p->mark;
22589 }
22590 p->mark = _mark;
22591 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
22592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
22593 }
22594 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22595 if (!_seq) {
22596 PyMem_Free(_children);
22597 p->error_indicator = 1;
22598 PyErr_NoMemory();
22599 D(p->level--);
22600 return NULL;
22601 }
22602 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22603 PyMem_Free(_children);
22604 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
22605 D(p->level--);
22606 return _seq;
22607}
22608
22609// _gather_116: kwarg_or_double_starred _loop0_117
22610static asdl_seq *
22611_gather_116_rule(Parser *p)
22612{
22613 D(p->level++);
22614 if (p->error_indicator) {
22615 D(p->level--);
22616 return NULL;
22617 }
22618 asdl_seq * _res = NULL;
22619 int _mark = p->mark;
22620 { // kwarg_or_double_starred _loop0_117
22621 if (p->error_indicator) {
22622 D(p->level--);
22623 return NULL;
22624 }
22625 D(fprintf(stderr, "%*c> _gather_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22626 KeywordOrStarred* elem;
22627 asdl_seq * seq;
22628 if (
22629 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22630 &&
22631 (seq = _loop0_117_rule(p)) // _loop0_117
22632 )
22633 {
22634 D(fprintf(stderr, "%*c+ _gather_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22635 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22636 goto done;
22637 }
22638 p->mark = _mark;
22639 D(fprintf(stderr, "%*c%s _gather_116[%d-%d]: %s failed!\n", p->level, ' ',
22640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22641 }
22642 _res = NULL;
22643 done:
22644 D(p->level--);
22645 return _res;
22646}
22647
22648// _loop0_118: (',' star_target)
22649static asdl_seq *
22650_loop0_118_rule(Parser *p)
22651{
22652 D(p->level++);
22653 if (p->error_indicator) {
22654 D(p->level--);
22655 return NULL;
22656 }
22657 void *_res = NULL;
22658 int _mark = p->mark;
22659 int _start_mark = p->mark;
22660 void **_children = PyMem_Malloc(sizeof(void *));
22661 if (!_children) {
22662 p->error_indicator = 1;
22663 PyErr_NoMemory();
22664 D(p->level--);
22665 return NULL;
22666 }
22667 ssize_t _children_capacity = 1;
22668 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022669 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022672 return NULL;
22673 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022674 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022675 void *_tmp_148_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022676 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022677 (_tmp_148_var = _tmp_148_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022678 )
22679 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022680 _res = _tmp_148_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022681 if (_n == _children_capacity) {
22682 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022683 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22684 if (!_new_children) {
22685 p->error_indicator = 1;
22686 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022687 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022688 return NULL;
22689 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022690 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022692 _children[_n++] = _res;
22693 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022695 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022696 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022699 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22700 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022701 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022702 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022707 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22708 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022709 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022710 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022711 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022712}
22713
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022714// _loop0_120: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022715static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022716_loop0_120_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022717{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022718 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022719 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022720 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022721 return NULL;
22722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022723 void *_res = NULL;
22724 int _mark = p->mark;
22725 int _start_mark = p->mark;
22726 void **_children = PyMem_Malloc(sizeof(void *));
22727 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022728 p->error_indicator = 1;
22729 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022730 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022731 return NULL;
22732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022733 ssize_t _children_capacity = 1;
22734 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022735 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022737 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022738 return NULL;
22739 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022740 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022741 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022742 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022743 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022744 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022745 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022746 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022747 )
22748 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022749 _res = elem;
22750 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022751 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022752 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022753 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022754 return NULL;
22755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022756 if (_n == _children_capacity) {
22757 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022758 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22759 if (!_new_children) {
22760 p->error_indicator = 1;
22761 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022763 return NULL;
22764 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022765 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022767 _children[_n++] = _res;
22768 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022770 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022771 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022774 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22775 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022776 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022777 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022782 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22783 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022784 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022785 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022786 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022787}
22788
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022789// _gather_119: star_target _loop0_120
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022790static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022791_gather_119_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022792{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022793 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022796 return NULL;
22797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022798 asdl_seq * _res = NULL;
22799 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022800 { // star_target _loop0_120
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022803 return NULL;
22804 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022805 D(fprintf(stderr, "%*c> _gather_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022806 expr_ty elem;
22807 asdl_seq * seq;
22808 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022809 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022810 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022811 (seq = _loop0_120_rule(p)) // _loop0_120
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022812 )
22813 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022814 D(fprintf(stderr, "%*c+ _gather_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022815 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022816 goto done;
22817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022818 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022819 D(fprintf(stderr, "%*c%s _gather_119[%d-%d]: %s failed!\n", p->level, ' ',
22820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022822 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022823 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022824 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022825 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022826}
22827
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022828// _tmp_121: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022829static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022830_tmp_121_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022831{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022832 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022834 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022835 return NULL;
22836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022837 void * _res = NULL;
22838 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022839 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022841 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022842 return NULL;
22843 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022844 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022845 expr_ty star_target_var;
22846 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022847 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022848 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022849 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022850 )
22851 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022852 D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022853 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022854 goto done;
22855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022856 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022857 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022860 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022861 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022862 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022863 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022864}
22865
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022866// _loop0_123: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022867static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022868_loop0_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022869{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022870 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022871 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022872 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022873 return NULL;
22874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022875 void *_res = NULL;
22876 int _mark = p->mark;
22877 int _start_mark = p->mark;
22878 void **_children = PyMem_Malloc(sizeof(void *));
22879 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022880 p->error_indicator = 1;
22881 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022883 return NULL;
22884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022885 ssize_t _children_capacity = 1;
22886 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022887 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022889 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022890 return NULL;
22891 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022892 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022893 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022894 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022895 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022896 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022897 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022898 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022899 )
22900 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022901 _res = elem;
22902 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022903 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022904 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022906 return NULL;
22907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022908 if (_n == _children_capacity) {
22909 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022910 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22911 if (!_new_children) {
22912 p->error_indicator = 1;
22913 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022915 return NULL;
22916 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022917 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022919 _children[_n++] = _res;
22920 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022922 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022923 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022926 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22927 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022928 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022929 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022934 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22935 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022936 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022937 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022938 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022939}
22940
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022941// _gather_122: del_target _loop0_123
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022942static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022943_gather_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022944{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022945 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022946 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022947 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022948 return NULL;
22949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022950 asdl_seq * _res = NULL;
22951 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022952 { // del_target _loop0_123
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022953 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022954 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022955 return NULL;
22956 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022957 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022958 expr_ty elem;
22959 asdl_seq * seq;
22960 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022961 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022962 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022963 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022964 )
22965 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022966 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022967 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022968 goto done;
22969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022970 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022971 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
22972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022974 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022975 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022977 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022978}
22979
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022980// _loop0_125: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022981static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022982_loop0_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022984 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022987 return NULL;
22988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022989 void *_res = NULL;
22990 int _mark = p->mark;
22991 int _start_mark = p->mark;
22992 void **_children = PyMem_Malloc(sizeof(void *));
22993 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022994 p->error_indicator = 1;
22995 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022996 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022997 return NULL;
22998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022999 ssize_t _children_capacity = 1;
23000 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023001 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023003 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023004 return NULL;
23005 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023006 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023007 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023008 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023009 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023010 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023011 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023012 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023013 )
23014 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023015 _res = elem;
23016 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023017 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023018 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023020 return NULL;
23021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023022 if (_n == _children_capacity) {
23023 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023024 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23025 if (!_new_children) {
23026 p->error_indicator = 1;
23027 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023028 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023029 return NULL;
23030 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023031 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023033 _children[_n++] = _res;
23034 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023036 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023037 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023040 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23041 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023042 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023043 p->error_indicator = 1;
23044 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023046 return NULL;
23047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023048 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23049 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023050 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023051 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023052 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023053}
23054
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023055// _gather_124: target _loop0_125
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023056static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023057_gather_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023058{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023059 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023062 return NULL;
23063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023064 asdl_seq * _res = NULL;
23065 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023066 { // target _loop0_125
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023069 return NULL;
23070 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023071 D(fprintf(stderr, "%*c> _gather_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_125"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023072 expr_ty elem;
23073 asdl_seq * seq;
23074 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023075 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023076 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023077 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023078 )
23079 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023080 D(fprintf(stderr, "%*c+ _gather_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_125"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023081 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023082 goto done;
23083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023084 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023085 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023088 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023089 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023090 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023091 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023092}
23093
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023094// _tmp_126: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023095static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023096_tmp_126_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023097{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023098 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023100 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023101 return NULL;
23102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023103 void * _res = NULL;
23104 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023105 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023108 return NULL;
23109 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023110 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023111 expr_ty args_var;
23112 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023113 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023114 )
23115 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023116 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023117 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023118 goto done;
23119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023120 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023121 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023123 }
23124 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023125 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023126 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023127 return NULL;
23128 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023129 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023130 expr_ty expression_var;
23131 asdl_seq* for_if_clauses_var;
23132 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023133 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023134 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023135 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023136 )
23137 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023138 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023139 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023140 goto done;
23141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023142 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023143 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023146 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023147 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023148 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023149 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023150}
23151
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023152// _loop0_127: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023153static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023154_loop0_127_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023155{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023156 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023157 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023158 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023159 return NULL;
23160 }
23161 void *_res = NULL;
23162 int _mark = p->mark;
23163 int _start_mark = p->mark;
23164 void **_children = PyMem_Malloc(sizeof(void *));
23165 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023166 p->error_indicator = 1;
23167 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023168 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023169 return NULL;
23170 }
23171 ssize_t _children_capacity = 1;
23172 ssize_t _n = 0;
23173 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023176 return NULL;
23177 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023178 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023179 asdl_seq* star_named_expressions_var;
23180 while (
23181 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23182 )
23183 {
23184 _res = star_named_expressions_var;
23185 if (_n == _children_capacity) {
23186 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023187 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23188 if (!_new_children) {
23189 p->error_indicator = 1;
23190 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023191 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023192 return NULL;
23193 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023194 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023195 }
23196 _children[_n++] = _res;
23197 _mark = p->mark;
23198 }
23199 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023200 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023202 }
23203 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23204 if (!_seq) {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023205 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023206 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 }
23211 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23212 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023213 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023214 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023215 return _seq;
23216}
23217
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023218// _loop0_128: (star_targets '=')
23219static asdl_seq *
23220_loop0_128_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023221{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023222 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023225 return NULL;
23226 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023227 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023228 int _mark = p->mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023229 int _start_mark = p->mark;
23230 void **_children = PyMem_Malloc(sizeof(void *));
23231 if (!_children) {
23232 p->error_indicator = 1;
23233 PyErr_NoMemory();
23234 D(p->level--);
23235 return NULL;
23236 }
23237 ssize_t _children_capacity = 1;
23238 ssize_t _n = 0;
23239 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023240 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023241 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023242 return NULL;
23243 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023244 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23245 void *_tmp_149_var;
23246 while (
23247 (_tmp_149_var = _tmp_149_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023248 )
23249 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023250 _res = _tmp_149_var;
23251 if (_n == _children_capacity) {
23252 _children_capacity *= 2;
23253 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23254 if (!_new_children) {
23255 p->error_indicator = 1;
23256 PyErr_NoMemory();
23257 D(p->level--);
23258 return NULL;
23259 }
23260 _children = _new_children;
23261 }
23262 _children[_n++] = _res;
23263 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023265 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023266 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023268 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023269 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23270 if (!_seq) {
23271 PyMem_Free(_children);
23272 p->error_indicator = 1;
23273 PyErr_NoMemory();
23274 D(p->level--);
23275 return NULL;
23276 }
23277 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23278 PyMem_Free(_children);
23279 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023280 D(p->level--);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023281 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023282}
23283
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023284// _loop0_129: (star_targets '=')
23285static asdl_seq *
23286_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023287{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023288 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023291 return NULL;
23292 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023293 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023294 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023295 int _start_mark = p->mark;
23296 void **_children = PyMem_Malloc(sizeof(void *));
23297 if (!_children) {
23298 p->error_indicator = 1;
23299 PyErr_NoMemory();
23300 D(p->level--);
23301 return NULL;
23302 }
23303 ssize_t _children_capacity = 1;
23304 ssize_t _n = 0;
23305 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023306 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023307 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023308 return NULL;
23309 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023310 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023311 void *_tmp_150_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023312 while (
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023313 (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023314 )
23315 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023316 _res = _tmp_150_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023317 if (_n == _children_capacity) {
23318 _children_capacity *= 2;
23319 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23320 if (!_new_children) {
23321 p->error_indicator = 1;
23322 PyErr_NoMemory();
23323 D(p->level--);
23324 return NULL;
23325 }
23326 _children = _new_children;
23327 }
23328 _children[_n++] = _res;
23329 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023331 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023332 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023334 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023335 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23336 if (!_seq) {
23337 PyMem_Free(_children);
23338 p->error_indicator = 1;
23339 PyErr_NoMemory();
23340 D(p->level--);
23341 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023342 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023343 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23344 PyMem_Free(_children);
23345 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023346 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023347 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023348}
23349
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023350// _tmp_130: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023351static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023352_tmp_130_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023353{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023354 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023355 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023357 return NULL;
23358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023359 void * _res = NULL;
23360 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023361 { // yield_expr
23362 if (p->error_indicator) {
23363 D(p->level--);
23364 return NULL;
23365 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023366 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023367 expr_ty yield_expr_var;
23368 if (
23369 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23370 )
23371 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023372 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023373 _res = yield_expr_var;
23374 goto done;
23375 }
23376 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023377 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23379 }
23380 { // star_expressions
23381 if (p->error_indicator) {
23382 D(p->level--);
23383 return NULL;
23384 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023385 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023386 expr_ty star_expressions_var;
23387 if (
23388 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23389 )
23390 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023391 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023392 _res = star_expressions_var;
23393 goto done;
23394 }
23395 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023396 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23398 }
23399 _res = NULL;
23400 done:
23401 D(p->level--);
23402 return _res;
23403}
23404
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023405// _tmp_131: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023406static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023407_tmp_131_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023408{
23409 D(p->level++);
23410 if (p->error_indicator) {
23411 D(p->level--);
23412 return NULL;
23413 }
23414 void * _res = NULL;
23415 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023416 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023417 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023418 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023419 return NULL;
23420 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023421 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023422 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023423 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023424 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023425 )
23426 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023427 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023428 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023429 goto done;
23430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023431 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023432 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023434 }
23435 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023436 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023437 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023438 return NULL;
23439 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023440 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023441 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023442 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023443 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023444 )
23445 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023446 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023447 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023448 goto done;
23449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023450 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023451 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023453 }
23454 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023457 return NULL;
23458 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023459 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023460 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023461 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023462 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023463 )
23464 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023465 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023466 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023467 goto done;
23468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023469 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023470 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023473 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023474 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023475 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023476 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023477}
23478
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023479// _loop0_132: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023480static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023481_loop0_132_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023482{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023483 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023484 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023485 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023486 return NULL;
23487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023488 void *_res = NULL;
23489 int _mark = p->mark;
23490 int _start_mark = p->mark;
23491 void **_children = PyMem_Malloc(sizeof(void *));
23492 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023493 p->error_indicator = 1;
23494 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023495 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023496 return NULL;
23497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023498 ssize_t _children_capacity = 1;
23499 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023500 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023501 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023502 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023503 return NULL;
23504 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023505 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023506 arg_ty param_no_default_var;
23507 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023508 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023509 )
23510 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023511 _res = param_no_default_var;
23512 if (_n == _children_capacity) {
23513 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23515 if (!_new_children) {
23516 p->error_indicator = 1;
23517 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023518 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023519 return NULL;
23520 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023521 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023523 _children[_n++] = _res;
23524 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023526 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023527 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023530 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23531 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023532 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023533 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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023538 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23539 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023540 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023541 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023542 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023543}
23544
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023545// _tmp_133: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023546static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023547_tmp_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023548{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023549 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023552 return NULL;
23553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023554 void * _res = NULL;
23555 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023556 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023559 return NULL;
23560 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023561 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023562 SlashWithDefault* slash_with_default_var;
23563 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023564 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023565 )
23566 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023567 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023568 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023569 goto done;
23570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023571 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023572 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023574 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023575 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023578 return NULL;
23579 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023580 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23581 asdl_seq * _loop1_151_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023582 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023583 (_loop1_151_var = _loop1_151_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023584 )
23585 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023586 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23587 _res = _loop1_151_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023588 goto done;
23589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023590 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023591 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023594 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023595 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023596 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023597 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023598}
23599
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023600// _loop0_134: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023601static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023602_loop0_134_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023603{
23604 D(p->level++);
23605 if (p->error_indicator) {
23606 D(p->level--);
23607 return NULL;
23608 }
23609 void *_res = NULL;
23610 int _mark = p->mark;
23611 int _start_mark = p->mark;
23612 void **_children = PyMem_Malloc(sizeof(void *));
23613 if (!_children) {
23614 p->error_indicator = 1;
23615 PyErr_NoMemory();
23616 D(p->level--);
23617 return NULL;
23618 }
23619 ssize_t _children_capacity = 1;
23620 ssize_t _n = 0;
23621 { // lambda_param_no_default
23622 if (p->error_indicator) {
23623 D(p->level--);
23624 return NULL;
23625 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023626 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023627 arg_ty lambda_param_no_default_var;
23628 while (
23629 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23630 )
23631 {
23632 _res = lambda_param_no_default_var;
23633 if (_n == _children_capacity) {
23634 _children_capacity *= 2;
23635 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23636 if (!_new_children) {
23637 p->error_indicator = 1;
23638 PyErr_NoMemory();
23639 D(p->level--);
23640 return NULL;
23641 }
23642 _children = _new_children;
23643 }
23644 _children[_n++] = _res;
23645 _mark = p->mark;
23646 }
23647 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023648 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23650 }
23651 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23652 if (!_seq) {
23653 PyMem_Free(_children);
23654 p->error_indicator = 1;
23655 PyErr_NoMemory();
23656 D(p->level--);
23657 return NULL;
23658 }
23659 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23660 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023661 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023662 D(p->level--);
23663 return _seq;
23664}
23665
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023666// _tmp_135: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023667static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023668_tmp_135_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023669{
23670 D(p->level++);
23671 if (p->error_indicator) {
23672 D(p->level--);
23673 return NULL;
23674 }
23675 void * _res = NULL;
23676 int _mark = p->mark;
23677 { // lambda_slash_with_default
23678 if (p->error_indicator) {
23679 D(p->level--);
23680 return NULL;
23681 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023682 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023683 SlashWithDefault* lambda_slash_with_default_var;
23684 if (
23685 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23686 )
23687 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023688 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023689 _res = lambda_slash_with_default_var;
23690 goto done;
23691 }
23692 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023693 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23695 }
23696 { // lambda_param_with_default+
23697 if (p->error_indicator) {
23698 D(p->level--);
23699 return NULL;
23700 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023701 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23702 asdl_seq * _loop1_152_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023703 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023704 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023705 )
23706 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023707 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23708 _res = _loop1_152_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023709 goto done;
23710 }
23711 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023712 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23714 }
23715 _res = NULL;
23716 done:
23717 D(p->level--);
23718 return _res;
23719}
23720
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023721// _tmp_136: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023722static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023723_tmp_136_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023724{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023725 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023727 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023728 return NULL;
23729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023730 void * _res = NULL;
23731 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023732 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023735 return NULL;
23736 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023737 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023738 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023739 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023740 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023741 )
23742 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023743 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023744 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023745 goto done;
23746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023747 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023748 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023750 }
23751 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023752 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023753 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023754 return NULL;
23755 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023756 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023757 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023758 void *_tmp_153_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023759 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023760 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023761 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023762 (_tmp_153_var = _tmp_153_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023763 )
23764 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023765 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23766 _res = _PyPegen_dummy_name(p, _literal, _tmp_153_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023767 goto done;
23768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023769 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023770 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023773 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023774 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023775 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023776 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023777}
23778
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023779// _tmp_137: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023780static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023781_tmp_137_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023782{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023783 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023785 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023786 return NULL;
23787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023788 void * _res = NULL;
23789 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023790 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023793 return NULL;
23794 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023795 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023796 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023797 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023798 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023799 )
23800 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023801 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023802 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023803 goto done;
23804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023805 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023806 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023808 }
23809 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023810 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023811 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023812 return NULL;
23813 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023814 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023815 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023816 void *_tmp_154_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023817 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023818 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023819 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023820 (_tmp_154_var = _tmp_154_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023821 )
23822 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023823 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23824 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023825 goto done;
23826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023827 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023828 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023831 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023832 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023833 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023834 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023835}
23836
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023837// _tmp_138: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023838static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023839_tmp_138_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023840{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023841 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023843 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023844 return NULL;
23845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023846 void * _res = NULL;
23847 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023848 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023849 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023850 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023851 return NULL;
23852 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023853 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023854 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023855 expr_ty z;
23856 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023857 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023858 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023859 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023860 )
23861 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023862 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023863 _res = z;
23864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023867 return NULL;
23868 }
23869 goto done;
23870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023871 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023872 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023875 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023877 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023878 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023879}
23880
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023881// _tmp_139: '.' | '...'
23882static void *
23883_tmp_139_rule(Parser *p)
23884{
23885 D(p->level++);
23886 if (p->error_indicator) {
23887 D(p->level--);
23888 return NULL;
23889 }
23890 void * _res = NULL;
23891 int _mark = p->mark;
23892 { // '.'
23893 if (p->error_indicator) {
23894 D(p->level--);
23895 return NULL;
23896 }
23897 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23898 Token * _literal;
23899 if (
23900 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23901 )
23902 {
23903 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23904 _res = _literal;
23905 goto done;
23906 }
23907 p->mark = _mark;
23908 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23910 }
23911 { // '...'
23912 if (p->error_indicator) {
23913 D(p->level--);
23914 return NULL;
23915 }
23916 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23917 Token * _literal;
23918 if (
23919 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23920 )
23921 {
23922 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23923 _res = _literal;
23924 goto done;
23925 }
23926 p->mark = _mark;
23927 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23929 }
23930 _res = NULL;
23931 done:
23932 D(p->level--);
23933 return _res;
23934}
23935
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023936// _tmp_140: '.' | '...'
23937static void *
23938_tmp_140_rule(Parser *p)
23939{
23940 D(p->level++);
23941 if (p->error_indicator) {
23942 D(p->level--);
23943 return NULL;
23944 }
23945 void * _res = NULL;
23946 int _mark = p->mark;
23947 { // '.'
23948 if (p->error_indicator) {
23949 D(p->level--);
23950 return NULL;
23951 }
23952 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23953 Token * _literal;
23954 if (
23955 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23956 )
23957 {
23958 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23959 _res = _literal;
23960 goto done;
23961 }
23962 p->mark = _mark;
23963 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
23964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23965 }
23966 { // '...'
23967 if (p->error_indicator) {
23968 D(p->level--);
23969 return NULL;
23970 }
23971 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23972 Token * _literal;
23973 if (
23974 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23975 )
23976 {
23977 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23978 _res = _literal;
23979 goto done;
23980 }
23981 p->mark = _mark;
23982 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
23983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23984 }
23985 _res = NULL;
23986 done:
23987 D(p->level--);
23988 return _res;
23989}
23990
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023991// _tmp_141: '@' named_expression NEWLINE
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023992static void *
23993_tmp_141_rule(Parser *p)
23994{
23995 D(p->level++);
23996 if (p->error_indicator) {
23997 D(p->level--);
23998 return NULL;
23999 }
24000 void * _res = NULL;
24001 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024002 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024004 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024005 return NULL;
24006 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024007 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024008 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024009 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024010 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024011 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024012 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024014 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024015 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024016 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024017 )
24018 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024019 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024020 _res = f;
24021 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024022 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024024 return NULL;
24025 }
24026 goto done;
24027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024028 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024029 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024032 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024033 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024034 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024035 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024036}
24037
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024038// _tmp_142: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024039static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024040_tmp_142_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024041{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024042 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024044 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024045 return NULL;
24046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024047 void * _res = NULL;
24048 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024049 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024050 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024051 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024052 return NULL;
24053 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024054 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024055 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024056 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024057 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024058 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024059 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024060 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024061 )
24062 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024063 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024064 _res = c;
24065 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024066 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024067 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024068 return NULL;
24069 }
24070 goto done;
24071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024072 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024073 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024076 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024077 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024078 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024079 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024080}
24081
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024082// _tmp_143: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024083static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024084_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024085{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024086 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024087 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024088 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024089 return NULL;
24090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024091 void * _res = NULL;
24092 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024093 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024095 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024096 return NULL;
24097 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024098 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024099 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024100 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024101 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024102 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024104 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024105 )
24106 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024107 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024108 _res = c;
24109 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024110 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024112 return NULL;
24113 }
24114 goto done;
24115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024116 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024117 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024120 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024121 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024122 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024123 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024124}
24125
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024126// _tmp_144: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024127static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024128_tmp_144_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024129{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024130 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024131 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024132 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024133 return NULL;
24134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024135 void * _res = NULL;
24136 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024137 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024139 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024140 return NULL;
24141 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024142 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024143 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024144 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024145 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024146 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024147 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024148 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024149 )
24150 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024151 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024152 _res = c;
24153 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024154 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024156 return NULL;
24157 }
24158 goto done;
24159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024160 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024161 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024164 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024165 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024166 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024167 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024168}
24169
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024170// _tmp_145: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024171static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024172_tmp_145_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024173{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024174 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024176 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024177 return NULL;
24178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024179 void * _res = NULL;
24180 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024181 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024184 return NULL;
24185 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024186 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024187 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024188 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024189 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024190 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024191 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024192 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024193 )
24194 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024195 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024196 _res = c;
24197 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024198 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024200 return NULL;
24201 }
24202 goto done;
24203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024204 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024205 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024207 }
24208 _res = NULL;
24209 done:
24210 D(p->level--);
24211 return _res;
24212}
24213
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024214// _tmp_146: 'if' disjunction
24215static void *
24216_tmp_146_rule(Parser *p)
24217{
24218 D(p->level++);
24219 if (p->error_indicator) {
24220 D(p->level--);
24221 return NULL;
24222 }
24223 void * _res = NULL;
24224 int _mark = p->mark;
24225 { // 'if' disjunction
24226 if (p->error_indicator) {
24227 D(p->level--);
24228 return NULL;
24229 }
24230 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24231 Token * _keyword;
24232 expr_ty z;
24233 if (
24234 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24235 &&
24236 (z = disjunction_rule(p)) // disjunction
24237 )
24238 {
24239 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24240 _res = z;
24241 if (_res == NULL && PyErr_Occurred()) {
24242 p->error_indicator = 1;
24243 D(p->level--);
24244 return NULL;
24245 }
24246 goto done;
24247 }
24248 p->mark = _mark;
24249 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
24250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24251 }
24252 _res = NULL;
24253 done:
24254 D(p->level--);
24255 return _res;
24256}
24257
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024258// _tmp_147: 'if' disjunction
24259static void *
24260_tmp_147_rule(Parser *p)
24261{
24262 D(p->level++);
24263 if (p->error_indicator) {
24264 D(p->level--);
24265 return NULL;
24266 }
24267 void * _res = NULL;
24268 int _mark = p->mark;
24269 { // 'if' disjunction
24270 if (p->error_indicator) {
24271 D(p->level--);
24272 return NULL;
24273 }
24274 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24275 Token * _keyword;
24276 expr_ty z;
24277 if (
24278 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24279 &&
24280 (z = disjunction_rule(p)) // disjunction
24281 )
24282 {
24283 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24284 _res = z;
24285 if (_res == NULL && PyErr_Occurred()) {
24286 p->error_indicator = 1;
24287 D(p->level--);
24288 return NULL;
24289 }
24290 goto done;
24291 }
24292 p->mark = _mark;
24293 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24295 }
24296 _res = NULL;
24297 done:
24298 D(p->level--);
24299 return _res;
24300}
24301
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024302// _tmp_148: ',' star_target
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024303static void *
24304_tmp_148_rule(Parser *p)
24305{
24306 D(p->level++);
24307 if (p->error_indicator) {
24308 D(p->level--);
24309 return NULL;
24310 }
24311 void * _res = NULL;
24312 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024313 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024316 return NULL;
24317 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024318 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024319 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024320 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024321 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024322 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024323 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024324 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024325 )
24326 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024327 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 +010024328 _res = c;
24329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024332 return NULL;
24333 }
24334 goto done;
24335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024336 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024337 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024339 }
24340 _res = NULL;
24341 done:
24342 D(p->level--);
24343 return _res;
24344}
24345
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024346// _tmp_149: star_targets '='
24347static void *
24348_tmp_149_rule(Parser *p)
24349{
24350 D(p->level++);
24351 if (p->error_indicator) {
24352 D(p->level--);
24353 return NULL;
24354 }
24355 void * _res = NULL;
24356 int _mark = p->mark;
24357 { // star_targets '='
24358 if (p->error_indicator) {
24359 D(p->level--);
24360 return NULL;
24361 }
24362 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24363 Token * _literal;
24364 expr_ty star_targets_var;
24365 if (
24366 (star_targets_var = star_targets_rule(p)) // star_targets
24367 &&
24368 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24369 )
24370 {
24371 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24372 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24373 goto done;
24374 }
24375 p->mark = _mark;
24376 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24378 }
24379 _res = NULL;
24380 done:
24381 D(p->level--);
24382 return _res;
24383}
24384
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024385// _tmp_150: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024386static void *
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024387_tmp_150_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024388{
24389 D(p->level++);
24390 if (p->error_indicator) {
24391 D(p->level--);
24392 return NULL;
24393 }
24394 void * _res = NULL;
24395 int _mark = p->mark;
24396 { // star_targets '='
24397 if (p->error_indicator) {
24398 D(p->level--);
24399 return NULL;
24400 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024401 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 -070024402 Token * _literal;
24403 expr_ty star_targets_var;
24404 if (
24405 (star_targets_var = star_targets_rule(p)) // star_targets
24406 &&
24407 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24408 )
24409 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024410 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 -070024411 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24412 goto done;
24413 }
24414 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024415 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24417 }
24418 _res = NULL;
24419 done:
24420 D(p->level--);
24421 return _res;
24422}
24423
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024424// _loop1_151: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024425static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024426_loop1_151_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024427{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024428 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024429 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024430 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024431 return NULL;
24432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024433 void *_res = NULL;
24434 int _mark = p->mark;
24435 int _start_mark = p->mark;
24436 void **_children = PyMem_Malloc(sizeof(void *));
24437 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024438 p->error_indicator = 1;
24439 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024440 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024441 return NULL;
24442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024443 ssize_t _children_capacity = 1;
24444 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024445 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024446 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024447 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024448 return NULL;
24449 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024450 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 -070024451 NameDefaultPair* param_with_default_var;
24452 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024453 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024454 )
24455 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024456 _res = param_with_default_var;
24457 if (_n == _children_capacity) {
24458 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024459 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24460 if (!_new_children) {
24461 p->error_indicator = 1;
24462 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024463 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024464 return NULL;
24465 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024466 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024468 _children[_n++] = _res;
24469 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024471 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024472 D(fprintf(stderr, "%*c%s _loop1_151[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024475 if (_n == 0 || p->error_indicator) {
24476 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024477 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024478 return NULL;
24479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024480 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24481 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024482 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024483 p->error_indicator = 1;
24484 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024485 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024486 return NULL;
24487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024488 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24489 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024490 _PyPegen_insert_memo(p, _start_mark, _loop1_151_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024492 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024493}
24494
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024495// _loop1_152: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024496static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024497_loop1_152_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024498{
24499 D(p->level++);
24500 if (p->error_indicator) {
24501 D(p->level--);
24502 return NULL;
24503 }
24504 void *_res = NULL;
24505 int _mark = p->mark;
24506 int _start_mark = p->mark;
24507 void **_children = PyMem_Malloc(sizeof(void *));
24508 if (!_children) {
24509 p->error_indicator = 1;
24510 PyErr_NoMemory();
24511 D(p->level--);
24512 return NULL;
24513 }
24514 ssize_t _children_capacity = 1;
24515 ssize_t _n = 0;
24516 { // lambda_param_with_default
24517 if (p->error_indicator) {
24518 D(p->level--);
24519 return NULL;
24520 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024521 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 -070024522 NameDefaultPair* lambda_param_with_default_var;
24523 while (
24524 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24525 )
24526 {
24527 _res = lambda_param_with_default_var;
24528 if (_n == _children_capacity) {
24529 _children_capacity *= 2;
24530 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24531 if (!_new_children) {
24532 p->error_indicator = 1;
24533 PyErr_NoMemory();
24534 D(p->level--);
24535 return NULL;
24536 }
24537 _children = _new_children;
24538 }
24539 _children[_n++] = _res;
24540 _mark = p->mark;
24541 }
24542 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024543 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24545 }
24546 if (_n == 0 || p->error_indicator) {
24547 PyMem_Free(_children);
24548 D(p->level--);
24549 return NULL;
24550 }
24551 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24552 if (!_seq) {
24553 PyMem_Free(_children);
24554 p->error_indicator = 1;
24555 PyErr_NoMemory();
24556 D(p->level--);
24557 return NULL;
24558 }
24559 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24560 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024561 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024562 D(p->level--);
24563 return _seq;
24564}
24565
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024566// _tmp_153: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024567static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024568_tmp_153_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024569{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024570 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024572 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024573 return NULL;
24574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024575 void * _res = NULL;
24576 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024577 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024579 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024580 return NULL;
24581 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024582 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024583 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024584 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024585 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024586 )
24587 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024588 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
24589 _res = _literal;
24590 goto done;
24591 }
24592 p->mark = _mark;
24593 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
24594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24595 }
24596 { // '**'
24597 if (p->error_indicator) {
24598 D(p->level--);
24599 return NULL;
24600 }
24601 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
24602 Token * _literal;
24603 if (
24604 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24605 )
24606 {
24607 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
24608 _res = _literal;
24609 goto done;
24610 }
24611 p->mark = _mark;
24612 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
24613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24614 }
24615 _res = NULL;
24616 done:
24617 D(p->level--);
24618 return _res;
24619}
24620
24621// _tmp_154: ':' | '**'
24622static void *
24623_tmp_154_rule(Parser *p)
24624{
24625 D(p->level++);
24626 if (p->error_indicator) {
24627 D(p->level--);
24628 return NULL;
24629 }
24630 void * _res = NULL;
24631 int _mark = p->mark;
24632 { // ':'
24633 if (p->error_indicator) {
24634 D(p->level--);
24635 return NULL;
24636 }
24637 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24638 Token * _literal;
24639 if (
24640 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24641 )
24642 {
24643 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024644 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024645 goto done;
24646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024647 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024648 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024650 }
24651 { // '**'
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 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024656 D(fprintf(stderr, "%*c> _tmp_154[%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, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024660 )
24661 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024662 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024663 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024664 goto done;
24665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024666 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024667 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024670 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024671 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024672 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024673 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024674}
24675
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024676void *
24677_PyPegen_parse(Parser *p)
24678{
24679 // Initialize keywords
24680 p->keywords = reserved_keywords;
24681 p->n_keyword_lists = n_keyword_lists;
24682
24683 // Run parser
24684 void *result = NULL;
24685 if (p->start_rule == Py_file_input) {
24686 result = file_rule(p);
24687 } else if (p->start_rule == Py_single_input) {
24688 result = interactive_rule(p);
24689 } else if (p->start_rule == Py_eval_input) {
24690 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024691 } else if (p->start_rule == Py_func_type_input) {
24692 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024693 } else if (p->start_rule == Py_fstring_input) {
24694 result = fstring_rule(p);
24695 }
24696
24697 return result;
24698}
24699
24700// The end