blob: b1057152b248c888aa69ec0e1133e92a889c71f4 [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
365#define _tmp_128_type 1287
366#define _loop0_129_type 1288
367#define _loop0_130_type 1289
368#define _tmp_131_type 1290
369#define _tmp_132_type 1291
370#define _loop0_133_type 1292
371#define _tmp_134_type 1293
372#define _loop0_135_type 1294
373#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
388#define _tmp_151_type 1310
389#define _loop1_152_type 1311
390#define _loop1_153_type 1312
391#define _tmp_154_type 1313
392#define _tmp_155_type 1314
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100393
394static mod_ty file_rule(Parser *p);
395static mod_ty interactive_rule(Parser *p);
396static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700397static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100398static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700399static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100400static asdl_seq* statements_rule(Parser *p);
401static asdl_seq* statement_rule(Parser *p);
402static asdl_seq* statement_newline_rule(Parser *p);
403static asdl_seq* simple_stmt_rule(Parser *p);
404static stmt_ty small_stmt_rule(Parser *p);
405static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300406static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100407static AugOperator* augassign_rule(Parser *p);
408static stmt_ty global_stmt_rule(Parser *p);
409static stmt_ty nonlocal_stmt_rule(Parser *p);
410static stmt_ty yield_stmt_rule(Parser *p);
411static stmt_ty assert_stmt_rule(Parser *p);
412static stmt_ty del_stmt_rule(Parser *p);
413static stmt_ty import_stmt_rule(Parser *p);
414static stmt_ty import_name_rule(Parser *p);
415static stmt_ty import_from_rule(Parser *p);
416static asdl_seq* import_from_targets_rule(Parser *p);
417static asdl_seq* import_from_as_names_rule(Parser *p);
418static alias_ty import_from_as_name_rule(Parser *p);
419static asdl_seq* dotted_as_names_rule(Parser *p);
420static alias_ty dotted_as_name_rule(Parser *p);
421static expr_ty dotted_name_rule(Parser *p);
422static stmt_ty if_stmt_rule(Parser *p);
423static stmt_ty elif_stmt_rule(Parser *p);
424static asdl_seq* else_block_rule(Parser *p);
425static stmt_ty while_stmt_rule(Parser *p);
426static stmt_ty for_stmt_rule(Parser *p);
427static stmt_ty with_stmt_rule(Parser *p);
428static withitem_ty with_item_rule(Parser *p);
429static stmt_ty try_stmt_rule(Parser *p);
430static excepthandler_ty except_block_rule(Parser *p);
431static asdl_seq* finally_block_rule(Parser *p);
432static stmt_ty return_stmt_rule(Parser *p);
433static stmt_ty raise_stmt_rule(Parser *p);
434static stmt_ty function_def_rule(Parser *p);
435static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100436static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100437static arguments_ty params_rule(Parser *p);
438static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700439static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100440static SlashWithDefault* slash_with_default_rule(Parser *p);
441static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100442static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700443static arg_ty param_no_default_rule(Parser *p);
444static NameDefaultPair* param_with_default_rule(Parser *p);
445static NameDefaultPair* param_maybe_default_rule(Parser *p);
446static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100447static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700448static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100449static asdl_seq* decorators_rule(Parser *p);
450static stmt_ty class_def_rule(Parser *p);
451static stmt_ty class_def_raw_rule(Parser *p);
452static asdl_seq* block_rule(Parser *p);
453static asdl_seq* expressions_list_rule(Parser *p);
454static expr_ty star_expressions_rule(Parser *p);
455static expr_ty star_expression_rule(Parser *p);
456static asdl_seq* star_named_expressions_rule(Parser *p);
457static expr_ty star_named_expression_rule(Parser *p);
458static expr_ty named_expression_rule(Parser *p);
459static expr_ty annotated_rhs_rule(Parser *p);
460static expr_ty expressions_rule(Parser *p);
461static expr_ty expression_rule(Parser *p);
462static expr_ty lambdef_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700463static arguments_ty lambda_params_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100464static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700465static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100466static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
467static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100468static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700469static arg_ty lambda_param_no_default_rule(Parser *p);
470static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
471static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
472static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100473static expr_ty disjunction_rule(Parser *p);
474static expr_ty conjunction_rule(Parser *p);
475static expr_ty inversion_rule(Parser *p);
476static expr_ty comparison_rule(Parser *p);
477static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
478static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
479static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
480static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
481static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
482static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
483static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
484static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
485static CmpopExprPair* in_bitwise_or_rule(Parser *p);
486static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
487static CmpopExprPair* is_bitwise_or_rule(Parser *p);
488static expr_ty bitwise_or_rule(Parser *p);
489static expr_ty bitwise_xor_rule(Parser *p);
490static expr_ty bitwise_and_rule(Parser *p);
491static expr_ty shift_expr_rule(Parser *p);
492static expr_ty sum_rule(Parser *p);
493static expr_ty term_rule(Parser *p);
494static expr_ty factor_rule(Parser *p);
495static expr_ty power_rule(Parser *p);
496static expr_ty await_primary_rule(Parser *p);
497static expr_ty primary_rule(Parser *p);
498static expr_ty slices_rule(Parser *p);
499static expr_ty slice_rule(Parser *p);
500static expr_ty atom_rule(Parser *p);
501static expr_ty strings_rule(Parser *p);
502static expr_ty list_rule(Parser *p);
503static expr_ty listcomp_rule(Parser *p);
504static expr_ty tuple_rule(Parser *p);
505static expr_ty group_rule(Parser *p);
506static expr_ty genexp_rule(Parser *p);
507static expr_ty set_rule(Parser *p);
508static expr_ty setcomp_rule(Parser *p);
509static expr_ty dict_rule(Parser *p);
510static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700511static asdl_seq* double_starred_kvpairs_rule(Parser *p);
512static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100513static KeyValuePair* kvpair_rule(Parser *p);
514static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300515static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100516static expr_ty yield_expr_rule(Parser *p);
517static expr_ty arguments_rule(Parser *p);
518static expr_ty args_rule(Parser *p);
519static asdl_seq* kwargs_rule(Parser *p);
520static expr_ty starred_expression_rule(Parser *p);
521static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
522static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
523static expr_ty star_targets_rule(Parser *p);
524static asdl_seq* star_targets_seq_rule(Parser *p);
525static expr_ty star_target_rule(Parser *p);
526static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300527static expr_ty single_target_rule(Parser *p);
528static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100529static asdl_seq* del_targets_rule(Parser *p);
530static expr_ty del_target_rule(Parser *p);
531static expr_ty del_t_atom_rule(Parser *p);
532static asdl_seq* targets_rule(Parser *p);
533static expr_ty target_rule(Parser *p);
534static expr_ty t_primary_rule(Parser *p);
535static void *t_lookahead_rule(Parser *p);
536static expr_ty t_atom_rule(Parser *p);
537static void *incorrect_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300538static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100539static void *invalid_named_expression_rule(Parser *p);
540static void *invalid_assignment_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300541static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100542static void *invalid_block_rule(Parser *p);
543static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700544static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100545static void *invalid_parameters_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700546static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300547static void *invalid_star_etc_rule(Parser *p);
548static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700549static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300550static void *invalid_with_item_rule(Parser *p);
551static void *invalid_for_target_rule(Parser *p);
552static void *invalid_group_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100553static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100554static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700555static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100556static asdl_seq *_loop0_4_rule(Parser *p);
557static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700558static asdl_seq *_loop0_6_rule(Parser *p);
559static asdl_seq *_gather_5_rule(Parser *p);
560static asdl_seq *_loop0_8_rule(Parser *p);
561static asdl_seq *_gather_7_rule(Parser *p);
562static asdl_seq *_loop0_10_rule(Parser *p);
563static asdl_seq *_gather_9_rule(Parser *p);
564static asdl_seq *_loop1_11_rule(Parser *p);
565static asdl_seq *_loop0_13_rule(Parser *p);
566static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100567static void *_tmp_14_rule(Parser *p);
568static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700569static void *_tmp_16_rule(Parser *p);
570static void *_tmp_17_rule(Parser *p);
571static void *_tmp_18_rule(Parser *p);
572static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100573static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700574static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100575static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700576static void *_tmp_23_rule(Parser *p);
577static void *_tmp_24_rule(Parser *p);
578static asdl_seq *_loop0_26_rule(Parser *p);
579static asdl_seq *_gather_25_rule(Parser *p);
580static asdl_seq *_loop0_28_rule(Parser *p);
581static asdl_seq *_gather_27_rule(Parser *p);
582static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300583static void *_tmp_30_rule(Parser *p);
584static asdl_seq *_loop0_31_rule(Parser *p);
585static asdl_seq *_loop1_32_rule(Parser *p);
586static asdl_seq *_loop0_34_rule(Parser *p);
587static asdl_seq *_gather_33_rule(Parser *p);
588static void *_tmp_35_rule(Parser *p);
589static asdl_seq *_loop0_37_rule(Parser *p);
590static asdl_seq *_gather_36_rule(Parser *p);
591static void *_tmp_38_rule(Parser *p);
592static asdl_seq *_loop0_40_rule(Parser *p);
593static asdl_seq *_gather_39_rule(Parser *p);
594static asdl_seq *_loop0_42_rule(Parser *p);
595static asdl_seq *_gather_41_rule(Parser *p);
596static asdl_seq *_loop0_44_rule(Parser *p);
597static asdl_seq *_gather_43_rule(Parser *p);
598static asdl_seq *_loop0_46_rule(Parser *p);
599static asdl_seq *_gather_45_rule(Parser *p);
600static void *_tmp_47_rule(Parser *p);
601static asdl_seq *_loop1_48_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300602static void *_tmp_49_rule(Parser *p);
603static void *_tmp_50_rule(Parser *p);
604static void *_tmp_51_rule(Parser *p);
605static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300606static void *_tmp_53_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300607static asdl_seq *_loop0_54_rule(Parser *p);
608static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300609static asdl_seq *_loop0_56_rule(Parser *p);
610static asdl_seq *_loop1_57_rule(Parser *p);
611static asdl_seq *_loop0_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700612static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300613static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300614static asdl_seq *_loop1_61_rule(Parser *p);
615static asdl_seq *_loop0_62_rule(Parser *p);
616static asdl_seq *_loop1_63_rule(Parser *p);
617static asdl_seq *_loop0_64_rule(Parser *p);
618static asdl_seq *_loop1_65_rule(Parser *p);
619static asdl_seq *_loop0_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300620static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300621static asdl_seq *_loop1_68_rule(Parser *p);
622static void *_tmp_69_rule(Parser *p);
623static asdl_seq *_loop0_71_rule(Parser *p);
624static asdl_seq *_gather_70_rule(Parser *p);
625static asdl_seq *_loop1_72_rule(Parser *p);
626static asdl_seq *_loop0_74_rule(Parser *p);
627static asdl_seq *_gather_73_rule(Parser *p);
628static asdl_seq *_loop1_75_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700629static asdl_seq *_loop0_76_rule(Parser *p);
630static asdl_seq *_loop0_77_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300631static asdl_seq *_loop0_78_rule(Parser *p);
632static asdl_seq *_loop1_79_rule(Parser *p);
633static asdl_seq *_loop0_80_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700634static asdl_seq *_loop1_81_rule(Parser *p);
635static asdl_seq *_loop1_82_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300636static asdl_seq *_loop1_83_rule(Parser *p);
637static asdl_seq *_loop0_84_rule(Parser *p);
638static asdl_seq *_loop1_85_rule(Parser *p);
639static asdl_seq *_loop0_86_rule(Parser *p);
640static asdl_seq *_loop1_87_rule(Parser *p);
641static asdl_seq *_loop0_88_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700642static asdl_seq *_loop1_89_rule(Parser *p);
643static asdl_seq *_loop1_90_rule(Parser *p);
644static asdl_seq *_loop1_91_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300645static asdl_seq *_loop1_92_rule(Parser *p);
646static void *_tmp_93_rule(Parser *p);
647static asdl_seq *_loop0_95_rule(Parser *p);
648static asdl_seq *_gather_94_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700649static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700650static void *_tmp_97_rule(Parser *p);
651static void *_tmp_98_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300652static void *_tmp_99_rule(Parser *p);
653static asdl_seq *_loop1_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300654static void *_tmp_101_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300655static void *_tmp_102_rule(Parser *p);
656static asdl_seq *_loop0_104_rule(Parser *p);
657static asdl_seq *_gather_103_rule(Parser *p);
658static asdl_seq *_loop1_105_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700659static asdl_seq *_loop0_106_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300660static asdl_seq *_loop0_107_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700661static void *_tmp_108_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300662static void *_tmp_109_rule(Parser *p);
663static asdl_seq *_loop0_111_rule(Parser *p);
664static asdl_seq *_gather_110_rule(Parser *p);
665static asdl_seq *_loop0_113_rule(Parser *p);
666static asdl_seq *_gather_112_rule(Parser *p);
667static asdl_seq *_loop0_115_rule(Parser *p);
668static asdl_seq *_gather_114_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700669static asdl_seq *_loop0_117_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300670static asdl_seq *_gather_116_rule(Parser *p);
671static asdl_seq *_loop0_118_rule(Parser *p);
672static asdl_seq *_loop0_120_rule(Parser *p);
673static asdl_seq *_gather_119_rule(Parser *p);
674static void *_tmp_121_rule(Parser *p);
675static asdl_seq *_loop0_123_rule(Parser *p);
676static asdl_seq *_gather_122_rule(Parser *p);
677static asdl_seq *_loop0_125_rule(Parser *p);
678static asdl_seq *_gather_124_rule(Parser *p);
679static void *_tmp_126_rule(Parser *p);
680static asdl_seq *_loop0_127_rule(Parser *p);
681static void *_tmp_128_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700682static asdl_seq *_loop0_129_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300683static asdl_seq *_loop0_130_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700684static void *_tmp_131_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300685static void *_tmp_132_rule(Parser *p);
686static asdl_seq *_loop0_133_rule(Parser *p);
687static void *_tmp_134_rule(Parser *p);
688static asdl_seq *_loop0_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700689static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100690static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700691static void *_tmp_138_rule(Parser *p);
692static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300693static void *_tmp_140_rule(Parser *p);
694static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700695static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300696static void *_tmp_143_rule(Parser *p);
697static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300698static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700699static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300700static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300701static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700702static void *_tmp_149_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700703static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300704static void *_tmp_151_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700705static asdl_seq *_loop1_152_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300706static asdl_seq *_loop1_153_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700707static void *_tmp_154_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300708static void *_tmp_155_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100709
710
711// file: statements? $
712static mod_ty
713file_rule(Parser *p)
714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100718 return NULL;
719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100720 mod_ty _res = NULL;
721 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100722 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300725 return NULL;
726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700727 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100728 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100729 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100730 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100731 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100732 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100733 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100734 )
735 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700736 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100737 _res = _PyPegen_make_module ( p , a );
738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100741 return NULL;
742 }
743 goto done;
744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700746 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100753}
754
755// interactive: statement_newline
756static mod_ty
757interactive_rule(Parser *p)
758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100762 return NULL;
763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100764 mod_ty _res = NULL;
765 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100766 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300769 return NULL;
770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700771 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100772 asdl_seq* a;
773 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100774 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100775 )
776 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700777 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100778 _res = Interactive ( a , p -> arena );
779 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100780 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100782 return NULL;
783 }
784 goto done;
785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100786 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700787 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100790 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100791 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700792 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100793 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100794}
795
796// eval: expressions NEWLINE* $
797static mod_ty
798eval_rule(Parser *p)
799{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700800 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100803 return NULL;
804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100805 mod_ty _res = NULL;
806 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100807 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700809 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300810 return NULL;
811 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700812 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100813 asdl_seq * _loop0_1_var;
814 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100815 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100816 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100817 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100818 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100819 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100820 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100821 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100822 )
823 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700824 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100825 _res = Expression ( a , p -> arena );
826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100829 return NULL;
830 }
831 goto done;
832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700834 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100837 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100838 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100840 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100841}
842
Guido van Rossumc001c092020-04-30 12:12:19 -0700843// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
844static mod_ty
845func_type_rule(Parser *p)
846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700847 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700849 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700850 return NULL;
851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100852 mod_ty _res = NULL;
853 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700854 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300857 return NULL;
858 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700859 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100860 Token * _literal;
861 Token * _literal_1;
862 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700863 asdl_seq * _loop0_2_var;
864 void *a;
865 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100866 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700867 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100868 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700869 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100870 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700871 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100872 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100874 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100876 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700877 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100878 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100880 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700881 )
882 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700883 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100884 _res = FunctionType ( a , b , p -> arena );
885 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700886 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700887 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700888 return NULL;
889 }
890 goto done;
891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100892 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700893 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100896 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700897 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700898 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100899 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700900}
901
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100902// fstring: star_expressions
903static expr_ty
904fstring_rule(Parser *p)
905{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700906 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100909 return NULL;
910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100911 expr_ty _res = NULL;
912 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100913 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300916 return NULL;
917 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700918 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100919 expr_ty star_expressions_var;
920 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100921 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100922 )
923 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700924 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100925 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100926 goto done;
927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100928 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700929 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100932 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100933 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700934 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100935 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100936}
937
Guido van Rossumc001c092020-04-30 12:12:19 -0700938// type_expressions:
939// | ','.expression+ ',' '*' expression ',' '**' expression
940// | ','.expression+ ',' '*' expression
941// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700942// | '*' expression ',' '**' expression
943// | '*' expression
944// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700945// | ','.expression+
946static asdl_seq*
947type_expressions_rule(Parser *p)
948{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700949 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700951 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700952 return NULL;
953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100954 asdl_seq* _res = NULL;
955 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700956 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300957 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700958 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300959 return NULL;
960 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700961 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100962 Token * _literal;
963 Token * _literal_1;
964 Token * _literal_2;
965 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700966 asdl_seq * a;
967 expr_ty b;
968 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700969 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100970 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700971 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100972 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700973 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100974 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100976 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100980 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100982 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700983 )
984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700985 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100986 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
987 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700988 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700989 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700990 return NULL;
991 }
992 goto done;
993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100994 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700995 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700997 }
998 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001001 return NULL;
1002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001003 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001004 Token * _literal;
1005 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001006 asdl_seq * a;
1007 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001008 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001009 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001010 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001011 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001012 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001013 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001015 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001016 )
1017 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001018 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001019 _res = _PyPegen_seq_append_to_end ( p , a , b );
1020 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001022 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001023 return NULL;
1024 }
1025 goto done;
1026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001028 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001030 }
1031 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001033 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001034 return NULL;
1035 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001036 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001037 Token * _literal;
1038 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001039 asdl_seq * a;
1040 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001041 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001042 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001043 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001044 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001045 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001046 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001048 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001049 )
1050 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001051 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001052 _res = _PyPegen_seq_append_to_end ( p , a , b );
1053 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001054 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001055 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001056 return NULL;
1057 }
1058 goto done;
1059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001060 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001061 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001063 }
Shantanu603d3542020-05-03 22:08:14 -07001064 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001067 return NULL;
1068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001069 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001070 Token * _literal;
1071 Token * _literal_1;
1072 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001073 expr_ty a;
1074 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001075 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001076 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001077 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001078 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001079 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001080 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001081 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001082 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001083 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001084 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001085 )
1086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001087 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001088 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1089 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001090 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001091 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001092 return NULL;
1093 }
1094 goto done;
1095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001096 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001097 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001099 }
1100 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001101 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001102 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001103 return NULL;
1104 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001105 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001106 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001107 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001108 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001109 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001110 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001111 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001112 )
1113 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001114 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001115 _res = _PyPegen_singleton_seq ( p , a );
1116 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001117 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001118 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001119 return NULL;
1120 }
1121 goto done;
1122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001123 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001124 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001126 }
1127 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001130 return NULL;
1131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001132 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001133 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001134 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001135 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001136 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001138 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001139 )
1140 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001141 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001142 _res = _PyPegen_singleton_seq ( p , a );
1143 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001144 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001145 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001146 return NULL;
1147 }
1148 goto done;
1149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001150 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001151 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001153 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001154 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001157 return NULL;
1158 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001159 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001160 asdl_seq * _gather_9_var;
1161 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001162 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001163 )
1164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001165 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001166 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001167 goto done;
1168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001170 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001173 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001174 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001175 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001176 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001177}
1178
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001179// statements: statement+
1180static asdl_seq*
1181statements_rule(Parser *p)
1182{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001183 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001185 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001186 return NULL;
1187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001188 asdl_seq* _res = NULL;
1189 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001190 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001193 return NULL;
1194 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001195 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001196 asdl_seq * a;
1197 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001198 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001199 )
1200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001201 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001202 _res = _PyPegen_seq_flatten ( p , a );
1203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001206 return NULL;
1207 }
1208 goto done;
1209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001211 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001214 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001215 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001216 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001217 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001218}
1219
1220// statement: compound_stmt | simple_stmt
1221static asdl_seq*
1222statement_rule(Parser *p)
1223{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001224 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001226 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001227 return NULL;
1228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001229 asdl_seq* _res = NULL;
1230 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001231 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001233 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001234 return NULL;
1235 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001236 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001237 stmt_ty a;
1238 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001239 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001240 )
1241 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001242 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001243 _res = _PyPegen_singleton_seq ( p , a );
1244 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001247 return NULL;
1248 }
1249 goto done;
1250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001251 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001252 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001254 }
1255 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001258 return NULL;
1259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001260 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001261 asdl_seq* simple_stmt_var;
1262 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001263 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001264 )
1265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001266 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001267 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001268 goto done;
1269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001271 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001274 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001275 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001278}
1279
1280// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1281static asdl_seq*
1282statement_newline_rule(Parser *p)
1283{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001284 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001287 return NULL;
1288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001289 asdl_seq* _res = NULL;
1290 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001294 return NULL;
1295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001296 int _start_lineno = p->tokens[_mark]->lineno;
1297 UNUSED(_start_lineno); // Only used by EXTRA macro
1298 int _start_col_offset = p->tokens[_mark]->col_offset;
1299 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001300 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001303 return NULL;
1304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001305 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001306 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001307 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001309 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001310 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001311 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001312 )
1313 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001314 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001315 _res = _PyPegen_singleton_seq ( p , a );
1316 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001317 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001319 return NULL;
1320 }
1321 goto done;
1322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001324 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001326 }
1327 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001330 return NULL;
1331 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001332 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001333 asdl_seq* simple_stmt_var;
1334 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001335 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001336 )
1337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001338 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001339 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001340 goto done;
1341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001342 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001343 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001345 }
1346 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001349 return NULL;
1350 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001351 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001352 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001353 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001354 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001355 )
1356 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001357 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1359 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001361 return NULL;
1362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001363 int _end_lineno = _token->end_lineno;
1364 UNUSED(_end_lineno); // Only used by EXTRA macro
1365 int _end_col_offset = _token->end_col_offset;
1366 UNUSED(_end_col_offset); // Only used by EXTRA macro
1367 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1368 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001369 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001371 return NULL;
1372 }
1373 goto done;
1374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001376 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001378 }
1379 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001381 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001382 return NULL;
1383 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001384 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001385 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001386 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001387 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001388 )
1389 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001390 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001391 _res = _PyPegen_interactive_exit ( p );
1392 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001393 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001395 return NULL;
1396 }
1397 goto done;
1398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001399 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001400 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001403 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001404 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001405 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001406 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001407}
1408
1409// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1410static asdl_seq*
1411simple_stmt_rule(Parser *p)
1412{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001413 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001416 return NULL;
1417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001418 asdl_seq* _res = NULL;
1419 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001420 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001423 return NULL;
1424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001425 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001426 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001427 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001428 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001429 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001430 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001431 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001432 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001433 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001434 )
1435 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001436 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001437 _res = _PyPegen_singleton_seq ( p , a );
1438 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001441 return NULL;
1442 }
1443 goto done;
1444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001446 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001448 }
1449 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001452 return NULL;
1453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001454 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001455 void *_opt_var;
1456 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001457 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001458 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001459 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001460 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001461 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001462 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001464 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001465 )
1466 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001467 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001468 _res = a;
1469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001472 return NULL;
1473 }
1474 goto done;
1475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001477 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001480 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001481 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001482 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001483 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001484}
1485
1486// small_stmt:
1487// | assignment
1488// | star_expressions
1489// | &'return' return_stmt
1490// | &('import' | 'from') import_stmt
1491// | &'raise' raise_stmt
1492// | 'pass'
1493// | &'del' del_stmt
1494// | &'yield' yield_stmt
1495// | &'assert' assert_stmt
1496// | 'break'
1497// | 'continue'
1498// | &'global' global_stmt
1499// | &'nonlocal' nonlocal_stmt
1500static stmt_ty
1501small_stmt_rule(Parser *p)
1502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001506 return NULL;
1507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001508 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001509 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001511 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001513 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001516 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001517 return NULL;
1518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001519 int _start_lineno = p->tokens[_mark]->lineno;
1520 UNUSED(_start_lineno); // Only used by EXTRA macro
1521 int _start_col_offset = p->tokens[_mark]->col_offset;
1522 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001523 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001525 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001526 return NULL;
1527 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001528 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001529 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001530 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001531 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001532 )
1533 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001534 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001535 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001536 goto done;
1537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001538 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001539 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001541 }
1542 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001544 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001545 return NULL;
1546 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001547 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001548 expr_ty e;
1549 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001550 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001551 )
1552 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001553 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1555 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001557 return NULL;
1558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001559 int _end_lineno = _token->end_lineno;
1560 UNUSED(_end_lineno); // Only used by EXTRA macro
1561 int _end_col_offset = _token->end_col_offset;
1562 UNUSED(_end_col_offset); // Only used by EXTRA macro
1563 _res = _Py_Expr ( e , EXTRA );
1564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001567 return NULL;
1568 }
1569 goto done;
1570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001572 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001574 }
1575 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001578 return NULL;
1579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001580 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001581 stmt_ty return_stmt_var;
1582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001583 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001585 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001586 )
1587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001588 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001589 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001590 goto done;
1591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001593 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001595 }
1596 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001599 return NULL;
1600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001601 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001602 stmt_ty import_stmt_var;
1603 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001604 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001605 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001606 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001607 )
1608 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001609 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001610 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001611 goto done;
1612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001613 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001614 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001616 }
1617 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001620 return NULL;
1621 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001622 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001623 stmt_ty raise_stmt_var;
1624 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001625 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001626 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001627 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001628 )
1629 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001630 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001631 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001632 goto done;
1633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001634 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001635 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001637 }
1638 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001639 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001640 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001641 return NULL;
1642 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001643 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001644 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001645 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001646 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001647 )
1648 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001649 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1651 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001652 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001653 return NULL;
1654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001655 int _end_lineno = _token->end_lineno;
1656 UNUSED(_end_lineno); // Only used by EXTRA macro
1657 int _end_col_offset = _token->end_col_offset;
1658 UNUSED(_end_col_offset); // Only used by EXTRA macro
1659 _res = _Py_Pass ( EXTRA );
1660 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001661 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001663 return NULL;
1664 }
1665 goto done;
1666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001667 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001668 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001670 }
1671 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001674 return NULL;
1675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001676 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001677 stmt_ty del_stmt_var;
1678 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001679 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001680 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001681 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001682 )
1683 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001684 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001685 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001686 goto done;
1687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001689 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001691 }
1692 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001695 return NULL;
1696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001697 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001698 stmt_ty yield_stmt_var;
1699 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001700 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001701 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001702 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001703 )
1704 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001705 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001706 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001707 goto done;
1708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001710 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001712 }
1713 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001716 return NULL;
1717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001718 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001719 stmt_ty assert_stmt_var;
1720 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001721 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001723 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001724 )
1725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001726 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001727 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001728 goto done;
1729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001730 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001731 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001733 }
1734 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001737 return NULL;
1738 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001739 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001740 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001741 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001742 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001743 )
1744 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001745 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1747 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001749 return NULL;
1750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001751 int _end_lineno = _token->end_lineno;
1752 UNUSED(_end_lineno); // Only used by EXTRA macro
1753 int _end_col_offset = _token->end_col_offset;
1754 UNUSED(_end_col_offset); // Only used by EXTRA macro
1755 _res = _Py_Break ( EXTRA );
1756 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001757 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001759 return NULL;
1760 }
1761 goto done;
1762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001764 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001766 }
1767 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001769 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001770 return NULL;
1771 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001772 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001773 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001774 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001775 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001776 )
1777 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001778 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1780 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001782 return NULL;
1783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001784 int _end_lineno = _token->end_lineno;
1785 UNUSED(_end_lineno); // Only used by EXTRA macro
1786 int _end_col_offset = _token->end_col_offset;
1787 UNUSED(_end_col_offset); // Only used by EXTRA macro
1788 _res = _Py_Continue ( EXTRA );
1789 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001790 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001791 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001792 return NULL;
1793 }
1794 goto done;
1795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001796 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001797 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001799 }
1800 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001803 return NULL;
1804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001805 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001806 stmt_ty global_stmt_var;
1807 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001808 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001810 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001811 )
1812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001813 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001814 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001815 goto done;
1816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001818 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001820 }
1821 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001824 return NULL;
1825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001826 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001827 stmt_ty nonlocal_stmt_var;
1828 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001829 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001830 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001831 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001832 )
1833 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001834 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001835 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001836 goto done;
1837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001838 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001839 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001842 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001843 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001844 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001846 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001847}
1848
1849// compound_stmt:
1850// | &('def' | '@' | ASYNC) function_def
1851// | &'if' if_stmt
1852// | &('class' | '@') class_def
1853// | &('with' | ASYNC) with_stmt
1854// | &('for' | ASYNC) for_stmt
1855// | &'try' try_stmt
1856// | &'while' while_stmt
1857static stmt_ty
1858compound_stmt_rule(Parser *p)
1859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001860 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001863 return NULL;
1864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001865 stmt_ty _res = NULL;
1866 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001867 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001870 return NULL;
1871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001872 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001873 stmt_ty function_def_var;
1874 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001875 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001876 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001877 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001878 )
1879 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001880 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001881 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001882 goto done;
1883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001884 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001885 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001887 }
1888 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001890 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001891 return NULL;
1892 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001893 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001894 stmt_ty if_stmt_var;
1895 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001896 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001897 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001898 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001899 )
1900 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001901 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001902 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001903 goto done;
1904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001906 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001908 }
1909 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001912 return NULL;
1913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001914 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001915 stmt_ty class_def_var;
1916 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001917 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001918 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001919 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001920 )
1921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001922 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001923 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001924 goto done;
1925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001927 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001929 }
1930 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001933 return NULL;
1934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001935 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001936 stmt_ty with_stmt_var;
1937 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001938 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001940 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001941 )
1942 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001943 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001944 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001945 goto done;
1946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001947 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001948 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001950 }
1951 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001953 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001954 return NULL;
1955 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001956 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001957 stmt_ty for_stmt_var;
1958 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001959 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001961 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001962 )
1963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001964 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001965 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001966 goto done;
1967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001969 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001971 }
1972 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001975 return NULL;
1976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001977 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001978 stmt_ty try_stmt_var;
1979 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001980 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001982 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001983 )
1984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001985 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001986 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001987 goto done;
1988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001989 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001990 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001992 }
1993 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001996 return NULL;
1997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001998 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001999 stmt_ty while_stmt_var;
2000 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002001 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002002 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002003 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002004 )
2005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002006 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002007 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002008 goto done;
2009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002011 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002014 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002015 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002017 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002018}
2019
2020// assignment:
2021// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002022// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002023// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002024// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002025// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002026static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002027assignment_rule(Parser *p)
2028{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002029 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002032 return NULL;
2033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002034 stmt_ty _res = NULL;
2035 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002036 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2037 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002038 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002039 return NULL;
2040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002041 int _start_lineno = p->tokens[_mark]->lineno;
2042 UNUSED(_start_lineno); // Only used by EXTRA macro
2043 int _start_col_offset = p->tokens[_mark]->col_offset;
2044 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002045 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002047 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002048 return NULL;
2049 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002050 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002051 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002052 expr_ty a;
2053 expr_ty b;
2054 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002055 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002056 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002057 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002058 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002059 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002060 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002062 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002063 )
2064 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002065 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002066 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2067 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002069 return NULL;
2070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002071 int _end_lineno = _token->end_lineno;
2072 UNUSED(_end_lineno); // Only used by EXTRA macro
2073 int _end_col_offset = _token->end_col_offset;
2074 UNUSED(_end_col_offset); // Only used by EXTRA macro
2075 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2076 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002077 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002079 return NULL;
2080 }
2081 goto done;
2082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002083 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002084 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002086 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002087 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002088 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002089 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002090 return NULL;
2091 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002092 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002093 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002094 void *a;
2095 expr_ty b;
2096 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002097 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002098 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002099 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002100 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002101 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002102 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002104 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002105 )
2106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002107 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2109 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002110 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002111 return NULL;
2112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002113 int _end_lineno = _token->end_lineno;
2114 UNUSED(_end_lineno); // Only used by EXTRA macro
2115 int _end_col_offset = _token->end_col_offset;
2116 UNUSED(_end_col_offset); // Only used by EXTRA macro
2117 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2118 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002119 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002121 return NULL;
2122 }
2123 goto done;
2124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002125 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002126 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002128 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002129 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002132 return NULL;
2133 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002134 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002135 asdl_seq * a;
2136 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002137 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002138 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002139 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002140 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002141 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002142 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002143 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002145 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002146 )
2147 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002148 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2150 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002152 return NULL;
2153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002154 int _end_lineno = _token->end_lineno;
2155 UNUSED(_end_lineno); // Only used by EXTRA macro
2156 int _end_col_offset = _token->end_col_offset;
2157 UNUSED(_end_col_offset); // Only used by EXTRA macro
2158 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002162 return NULL;
2163 }
2164 goto done;
2165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002167 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002169 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002170 { // single_target augassign ~ (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002173 return NULL;
2174 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002175 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2176 int _cut_var = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002177 expr_ty a;
2178 AugOperator* b;
2179 void *c;
2180 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002181 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002182 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002183 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002184 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002185 (_cut_var = 1)
2186 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002187 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002188 )
2189 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002190 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2192 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002194 return NULL;
2195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002196 int _end_lineno = _token->end_lineno;
2197 UNUSED(_end_lineno); // Only used by EXTRA macro
2198 int _end_col_offset = _token->end_col_offset;
2199 UNUSED(_end_col_offset); // Only used by EXTRA macro
2200 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002204 return NULL;
2205 }
2206 goto done;
2207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002209 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2211 if (_cut_var) {
2212 D(p->level--);
2213 return NULL;
2214 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002215 }
2216 { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002219 return NULL;
2220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002221 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002222 void *invalid_assignment_var;
2223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002224 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002225 )
2226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002227 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002228 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002229 goto done;
2230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002231 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002232 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002235 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002236 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002237 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002238 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002239}
2240
2241// augassign:
2242// | '+='
2243// | '-='
2244// | '*='
2245// | '@='
2246// | '/='
2247// | '%='
2248// | '&='
2249// | '|='
2250// | '^='
2251// | '<<='
2252// | '>>='
2253// | '**='
2254// | '//='
2255static AugOperator*
2256augassign_rule(Parser *p)
2257{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002258 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002261 return NULL;
2262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002263 AugOperator* _res = NULL;
2264 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002268 return NULL;
2269 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002270 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002271 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002272 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002273 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002274 )
2275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002276 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002277 _res = _PyPegen_augoperator ( p , Add );
2278 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002279 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002281 return NULL;
2282 }
2283 goto done;
2284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002285 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002286 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002288 }
2289 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002292 return NULL;
2293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002294 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002295 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002296 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002297 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002298 )
2299 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002300 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002301 _res = _PyPegen_augoperator ( p , Sub );
2302 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002303 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002305 return NULL;
2306 }
2307 goto done;
2308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002309 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002310 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002312 }
2313 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002316 return NULL;
2317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002318 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002319 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002320 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002321 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002322 )
2323 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002324 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002325 _res = _PyPegen_augoperator ( p , Mult );
2326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002327 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002329 return NULL;
2330 }
2331 goto done;
2332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002333 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002334 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002336 }
2337 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002340 return NULL;
2341 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002342 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002343 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002344 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002345 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002346 )
2347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002348 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002349 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2350 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002351 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002353 return NULL;
2354 }
2355 goto done;
2356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002357 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002358 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002360 }
2361 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002364 return NULL;
2365 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002366 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002367 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002368 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002369 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002370 )
2371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002372 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002373 _res = _PyPegen_augoperator ( p , Div );
2374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002377 return NULL;
2378 }
2379 goto done;
2380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002382 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002384 }
2385 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002388 return NULL;
2389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002390 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002391 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002392 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002393 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002394 )
2395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002396 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002397 _res = _PyPegen_augoperator ( p , Mod );
2398 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002399 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002401 return NULL;
2402 }
2403 goto done;
2404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002405 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002406 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002408 }
2409 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002411 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002412 return NULL;
2413 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002414 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002415 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002416 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002417 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002418 )
2419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002420 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002421 _res = _PyPegen_augoperator ( p , BitAnd );
2422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002425 return NULL;
2426 }
2427 goto done;
2428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002430 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002432 }
2433 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002436 return NULL;
2437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002438 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002439 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002440 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002441 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002442 )
2443 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002444 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002445 _res = _PyPegen_augoperator ( p , BitOr );
2446 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002447 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002449 return NULL;
2450 }
2451 goto done;
2452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002454 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002456 }
2457 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002460 return NULL;
2461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002462 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002463 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002464 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002465 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002466 )
2467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002468 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002469 _res = _PyPegen_augoperator ( p , BitXor );
2470 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002471 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002473 return NULL;
2474 }
2475 goto done;
2476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002477 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002478 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002480 }
2481 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002484 return NULL;
2485 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002486 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002487 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002488 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002489 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002490 )
2491 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002492 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002493 _res = _PyPegen_augoperator ( p , LShift );
2494 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002495 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002497 return NULL;
2498 }
2499 goto done;
2500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002502 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002504 }
2505 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002507 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002508 return NULL;
2509 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002510 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002511 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002512 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002513 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002514 )
2515 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002516 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002517 _res = _PyPegen_augoperator ( p , RShift );
2518 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002521 return NULL;
2522 }
2523 goto done;
2524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002525 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002526 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002528 }
2529 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002532 return NULL;
2533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002534 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002535 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002536 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002537 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002538 )
2539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002540 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002541 _res = _PyPegen_augoperator ( p , Pow );
2542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002545 return NULL;
2546 }
2547 goto done;
2548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002550 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002552 }
2553 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002556 return NULL;
2557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002558 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002559 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002560 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002561 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002562 )
2563 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002564 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002565 _res = _PyPegen_augoperator ( p , FloorDiv );
2566 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002567 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002569 return NULL;
2570 }
2571 goto done;
2572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002573 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002574 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002577 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002578 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002579 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002580 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002581}
2582
2583// global_stmt: 'global' ','.NAME+
2584static stmt_ty
2585global_stmt_rule(Parser *p)
2586{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002587 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002590 return NULL;
2591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002592 stmt_ty _res = NULL;
2593 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002594 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002597 return NULL;
2598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002599 int _start_lineno = p->tokens[_mark]->lineno;
2600 UNUSED(_start_lineno); // Only used by EXTRA macro
2601 int _start_col_offset = p->tokens[_mark]->col_offset;
2602 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002603 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002604 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002605 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002606 return NULL;
2607 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002608 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002609 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002610 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002611 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002612 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002614 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002615 )
2616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002617 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002618 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2619 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002621 return NULL;
2622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002623 int _end_lineno = _token->end_lineno;
2624 UNUSED(_end_lineno); // Only used by EXTRA macro
2625 int _end_col_offset = _token->end_col_offset;
2626 UNUSED(_end_col_offset); // Only used by EXTRA macro
2627 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2628 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002631 return NULL;
2632 }
2633 goto done;
2634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002636 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002639 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002640 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002641 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002642 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002643}
2644
2645// nonlocal_stmt: 'nonlocal' ','.NAME+
2646static stmt_ty
2647nonlocal_stmt_rule(Parser *p)
2648{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002649 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002652 return NULL;
2653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002654 stmt_ty _res = NULL;
2655 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002656 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2657 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002658 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002659 return NULL;
2660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002661 int _start_lineno = p->tokens[_mark]->lineno;
2662 UNUSED(_start_lineno); // Only used by EXTRA macro
2663 int _start_col_offset = p->tokens[_mark]->col_offset;
2664 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002665 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002667 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002668 return NULL;
2669 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002670 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002671 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002672 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002673 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002674 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002676 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002677 )
2678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002679 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002680 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2681 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002682 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002683 return NULL;
2684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002685 int _end_lineno = _token->end_lineno;
2686 UNUSED(_end_lineno); // Only used by EXTRA macro
2687 int _end_col_offset = _token->end_col_offset;
2688 UNUSED(_end_col_offset); // Only used by EXTRA macro
2689 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2690 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002691 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002693 return NULL;
2694 }
2695 goto done;
2696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002697 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002698 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002701 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002702 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002703 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002704 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002705}
2706
2707// yield_stmt: yield_expr
2708static stmt_ty
2709yield_stmt_rule(Parser *p)
2710{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002711 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002714 return NULL;
2715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002716 stmt_ty _res = NULL;
2717 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2719 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002720 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002721 return NULL;
2722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002723 int _start_lineno = p->tokens[_mark]->lineno;
2724 UNUSED(_start_lineno); // Only used by EXTRA macro
2725 int _start_col_offset = p->tokens[_mark]->col_offset;
2726 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002727 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002730 return NULL;
2731 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002732 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002733 expr_ty y;
2734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002735 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002736 )
2737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002738 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002739 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2740 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002742 return NULL;
2743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002744 int _end_lineno = _token->end_lineno;
2745 UNUSED(_end_lineno); // Only used by EXTRA macro
2746 int _end_col_offset = _token->end_col_offset;
2747 UNUSED(_end_col_offset); // Only used by EXTRA macro
2748 _res = _Py_Expr ( y , EXTRA );
2749 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002750 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002752 return NULL;
2753 }
2754 goto done;
2755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002756 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002757 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002760 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002761 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002762 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002763 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002764}
2765
2766// assert_stmt: 'assert' expression [',' expression]
2767static stmt_ty
2768assert_stmt_rule(Parser *p)
2769{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002770 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002773 return NULL;
2774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002775 stmt_ty _res = NULL;
2776 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002777 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002780 return NULL;
2781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002782 int _start_lineno = p->tokens[_mark]->lineno;
2783 UNUSED(_start_lineno); // Only used by EXTRA macro
2784 int _start_col_offset = p->tokens[_mark]->col_offset;
2785 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002786 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002789 return NULL;
2790 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002791 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002792 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002793 expr_ty a;
2794 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002796 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002798 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002799 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002800 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002801 )
2802 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002803 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002804 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2805 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002807 return NULL;
2808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002809 int _end_lineno = _token->end_lineno;
2810 UNUSED(_end_lineno); // Only used by EXTRA macro
2811 int _end_col_offset = _token->end_col_offset;
2812 UNUSED(_end_col_offset); // Only used by EXTRA macro
2813 _res = _Py_Assert ( a , b , EXTRA );
2814 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002815 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002817 return NULL;
2818 }
2819 goto done;
2820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002821 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002822 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002825 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002826 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002827 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002828 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002829}
2830
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002831// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002832static stmt_ty
2833del_stmt_rule(Parser *p)
2834{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002835 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002838 return NULL;
2839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002840 stmt_ty _res = NULL;
2841 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2843 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002845 return NULL;
2846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002847 int _start_lineno = p->tokens[_mark]->lineno;
2848 UNUSED(_start_lineno); // Only used by EXTRA macro
2849 int _start_col_offset = p->tokens[_mark]->col_offset;
2850 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002851 { // 'del' del_targets &(';' | NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002853 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002854 return NULL;
2855 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002856 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002857 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002858 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002859 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002860 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002862 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002863 &&
2864 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002865 )
2866 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002867 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2869 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002871 return NULL;
2872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002873 int _end_lineno = _token->end_lineno;
2874 UNUSED(_end_lineno); // Only used by EXTRA macro
2875 int _end_col_offset = _token->end_col_offset;
2876 UNUSED(_end_col_offset); // Only used by EXTRA macro
2877 _res = _Py_Delete ( a , EXTRA );
2878 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002879 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002880 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002881 return NULL;
2882 }
2883 goto done;
2884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002885 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002886 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2888 }
2889 { // invalid_del_stmt
2890 if (p->error_indicator) {
2891 D(p->level--);
2892 return NULL;
2893 }
2894 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2895 void *invalid_del_stmt_var;
2896 if (
2897 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2898 )
2899 {
2900 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2901 _res = invalid_del_stmt_var;
2902 goto done;
2903 }
2904 p->mark = _mark;
2905 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002908 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002909 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002910 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002911 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002912}
2913
2914// import_stmt: import_name | import_from
2915static stmt_ty
2916import_stmt_rule(Parser *p)
2917{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002918 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002921 return NULL;
2922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002923 stmt_ty _res = NULL;
2924 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002925 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002927 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002928 return NULL;
2929 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002930 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002931 stmt_ty import_name_var;
2932 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002933 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002934 )
2935 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002936 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002937 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002938 goto done;
2939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002941 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002943 }
2944 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002946 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002947 return NULL;
2948 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002949 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002950 stmt_ty import_from_var;
2951 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002952 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002953 )
2954 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002955 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002956 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002957 goto done;
2958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002960 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002963 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002964 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002966 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002967}
2968
2969// import_name: 'import' dotted_as_names
2970static stmt_ty
2971import_name_rule(Parser *p)
2972{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002973 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002975 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002976 return NULL;
2977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002978 stmt_ty _res = NULL;
2979 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002983 return NULL;
2984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002985 int _start_lineno = p->tokens[_mark]->lineno;
2986 UNUSED(_start_lineno); // Only used by EXTRA macro
2987 int _start_col_offset = p->tokens[_mark]->col_offset;
2988 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002989 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002992 return NULL;
2993 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002994 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002995 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002996 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002997 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002998 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003000 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003001 )
3002 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003003 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3005 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003006 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003007 return NULL;
3008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003009 int _end_lineno = _token->end_lineno;
3010 UNUSED(_end_lineno); // Only used by EXTRA macro
3011 int _end_col_offset = _token->end_col_offset;
3012 UNUSED(_end_col_offset); // Only used by EXTRA macro
3013 _res = _Py_Import ( a , EXTRA );
3014 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003015 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003017 return NULL;
3018 }
3019 goto done;
3020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003021 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003022 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003025 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003026 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003027 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003028 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003029}
3030
3031// import_from:
3032// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3033// | 'from' (('.' | '...'))+ 'import' import_from_targets
3034static stmt_ty
3035import_from_rule(Parser *p)
3036{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003037 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003038 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003039 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003040 return NULL;
3041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003042 stmt_ty _res = NULL;
3043 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003044 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3045 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003047 return NULL;
3048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003049 int _start_lineno = p->tokens[_mark]->lineno;
3050 UNUSED(_start_lineno); // Only used by EXTRA macro
3051 int _start_col_offset = p->tokens[_mark]->col_offset;
3052 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003053 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003055 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003056 return NULL;
3057 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003058 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003059 Token * _keyword;
3060 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003061 asdl_seq * a;
3062 expr_ty b;
3063 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003064 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003065 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003066 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003067 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003068 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003069 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003071 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003073 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003074 )
3075 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003076 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3078 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003080 return NULL;
3081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003082 int _end_lineno = _token->end_lineno;
3083 UNUSED(_end_lineno); // Only used by EXTRA macro
3084 int _end_col_offset = _token->end_col_offset;
3085 UNUSED(_end_col_offset); // Only used by EXTRA macro
3086 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3087 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003088 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003090 return NULL;
3091 }
3092 goto done;
3093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003094 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003095 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003097 }
3098 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003101 return NULL;
3102 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003103 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003104 Token * _keyword;
3105 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003106 asdl_seq * a;
3107 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003108 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003109 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003110 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003111 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003112 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003113 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003115 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003116 )
3117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003118 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3120 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003122 return NULL;
3123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003124 int _end_lineno = _token->end_lineno;
3125 UNUSED(_end_lineno); // Only used by EXTRA macro
3126 int _end_col_offset = _token->end_col_offset;
3127 UNUSED(_end_col_offset); // Only used by EXTRA macro
3128 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003132 return NULL;
3133 }
3134 goto done;
3135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003137 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003140 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003141 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003142 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003143 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003144}
3145
Pablo Galindo275d7e12020-05-21 22:04:54 +01003146// import_from_targets:
3147// | '(' import_from_as_names ','? ')'
3148// | import_from_as_names !','
3149// | '*'
3150// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003151static asdl_seq*
3152import_from_targets_rule(Parser *p)
3153{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003154 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003157 return NULL;
3158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003159 asdl_seq* _res = NULL;
3160 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003161 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003163 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003164 return NULL;
3165 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003166 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003167 Token * _literal;
3168 Token * _literal_1;
3169 void *_opt_var;
3170 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003171 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003172 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003173 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003174 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003175 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003176 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003177 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003179 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003180 )
3181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003182 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003183 _res = a;
3184 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003185 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003187 return NULL;
3188 }
3189 goto done;
3190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003191 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003192 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003194 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003195 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003197 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003198 return NULL;
3199 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003200 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003201 asdl_seq* import_from_as_names_var;
3202 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003203 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003204 &&
3205 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003206 )
3207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003208 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003209 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003210 goto done;
3211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003213 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003215 }
3216 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003219 return NULL;
3220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003221 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003222 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003223 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003224 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003225 )
3226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003227 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003228 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003232 return NULL;
3233 }
3234 goto done;
3235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003237 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003239 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003240 { // invalid_import_from_targets
3241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003242 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003243 return NULL;
3244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003245 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003246 void *invalid_import_from_targets_var;
3247 if (
3248 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3249 )
3250 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003251 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003252 _res = invalid_import_from_targets_var;
3253 goto done;
3254 }
3255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003256 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003259 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003260 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003262 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003263}
3264
3265// import_from_as_names: ','.import_from_as_name+
3266static asdl_seq*
3267import_from_as_names_rule(Parser *p)
3268{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003269 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003272 return NULL;
3273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003274 asdl_seq* _res = NULL;
3275 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003276 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003278 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003279 return NULL;
3280 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003281 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003282 asdl_seq * a;
3283 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003284 (a = _gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003285 )
3286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003287 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003288 _res = a;
3289 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003292 return NULL;
3293 }
3294 goto done;
3295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003297 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003300 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003303 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003304}
3305
3306// import_from_as_name: NAME ['as' NAME]
3307static alias_ty
3308import_from_as_name_rule(Parser *p)
3309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003310 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003313 return NULL;
3314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003315 alias_ty _res = NULL;
3316 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003317 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003320 return NULL;
3321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003322 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003323 expr_ty a;
3324 void *b;
3325 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003326 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003327 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003328 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003329 )
3330 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003331 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003332 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3333 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003334 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003336 return NULL;
3337 }
3338 goto done;
3339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003340 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003341 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003344 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003345 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003346 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003347 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003348}
3349
3350// dotted_as_names: ','.dotted_as_name+
3351static asdl_seq*
3352dotted_as_names_rule(Parser *p)
3353{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003354 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003355 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003357 return NULL;
3358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003359 asdl_seq* _res = NULL;
3360 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003361 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003364 return NULL;
3365 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003366 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003367 asdl_seq * a;
3368 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003369 (a = _gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003370 )
3371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003372 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003373 _res = a;
3374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003377 return NULL;
3378 }
3379 goto done;
3380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003382 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003385 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003386 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003387 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003388 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003389}
3390
3391// dotted_as_name: dotted_name ['as' NAME]
3392static alias_ty
3393dotted_as_name_rule(Parser *p)
3394{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003395 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003396 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003398 return NULL;
3399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003400 alias_ty _res = NULL;
3401 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003402 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003405 return NULL;
3406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003407 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003408 expr_ty a;
3409 void *b;
3410 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003411 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003412 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003413 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003414 )
3415 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003416 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003417 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3418 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003421 return NULL;
3422 }
3423 goto done;
3424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003426 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003429 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003430 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003431 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003432 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003433}
3434
3435// Left-recursive
3436// dotted_name: dotted_name '.' NAME | NAME
3437static expr_ty dotted_name_raw(Parser *);
3438static expr_ty
3439dotted_name_rule(Parser *p)
3440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003441 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003442 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003443 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3444 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003445 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003447 int _mark = p->mark;
3448 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003449 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003450 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003451 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003452 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003453 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003455 p->mark = _mark;
3456 void *_raw = dotted_name_raw(p);
3457 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003458 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003459 _resmark = p->mark;
3460 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003462 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003463 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003464 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003465}
3466static expr_ty
3467dotted_name_raw(Parser *p)
3468{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003469 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003472 return NULL;
3473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003474 expr_ty _res = NULL;
3475 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003476 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003477 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003478 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003479 return NULL;
3480 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003481 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 +01003482 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003483 expr_ty a;
3484 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003485 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003486 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003487 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003488 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003489 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003490 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003491 )
3492 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003493 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 +01003494 _res = _PyPegen_join_names_with_dot ( p , a , b );
3495 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003496 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003497 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003498 return NULL;
3499 }
3500 goto done;
3501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003502 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003503 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003505 }
3506 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003509 return NULL;
3510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003511 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003512 expr_ty name_var;
3513 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003514 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003515 )
3516 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003517 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003518 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003519 goto done;
3520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003521 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003522 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003525 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003526 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003527 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003528 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003529}
3530
3531// if_stmt:
3532// | 'if' named_expression ':' block elif_stmt
3533// | 'if' named_expression ':' block else_block?
3534static stmt_ty
3535if_stmt_rule(Parser *p)
3536{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003537 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003539 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003540 return NULL;
3541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003542 stmt_ty _res = NULL;
3543 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003544 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3545 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003547 return NULL;
3548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003549 int _start_lineno = p->tokens[_mark]->lineno;
3550 UNUSED(_start_lineno); // Only used by EXTRA macro
3551 int _start_col_offset = p->tokens[_mark]->col_offset;
3552 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003553 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003556 return NULL;
3557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003558 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 +01003559 Token * _keyword;
3560 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003561 expr_ty a;
3562 asdl_seq* b;
3563 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003564 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003565 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003566 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003567 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003568 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003569 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003570 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003571 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003573 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003574 )
3575 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003576 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 +01003577 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3578 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003580 return NULL;
3581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003582 int _end_lineno = _token->end_lineno;
3583 UNUSED(_end_lineno); // Only used by EXTRA macro
3584 int _end_col_offset = _token->end_col_offset;
3585 UNUSED(_end_col_offset); // Only used by EXTRA macro
3586 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3587 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003588 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003590 return NULL;
3591 }
3592 goto done;
3593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003594 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003595 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003597 }
3598 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003601 return NULL;
3602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003603 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 +01003604 Token * _keyword;
3605 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003606 expr_ty a;
3607 asdl_seq* b;
3608 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003609 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003610 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003611 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003612 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003613 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003614 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003616 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003618 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 )
3620 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003621 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 +01003622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3623 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003625 return NULL;
3626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003627 int _end_lineno = _token->end_lineno;
3628 UNUSED(_end_lineno); // Only used by EXTRA macro
3629 int _end_col_offset = _token->end_col_offset;
3630 UNUSED(_end_col_offset); // Only used by EXTRA macro
3631 _res = _Py_If ( a , b , c , EXTRA );
3632 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003633 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003635 return NULL;
3636 }
3637 goto done;
3638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003640 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003643 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003644 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003646 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003647}
3648
3649// elif_stmt:
3650// | 'elif' named_expression ':' block elif_stmt
3651// | 'elif' named_expression ':' block else_block?
3652static stmt_ty
3653elif_stmt_rule(Parser *p)
3654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003658 return NULL;
3659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003660 stmt_ty _res = NULL;
3661 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003665 return NULL;
3666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003667 int _start_lineno = p->tokens[_mark]->lineno;
3668 UNUSED(_start_lineno); // Only used by EXTRA macro
3669 int _start_col_offset = p->tokens[_mark]->col_offset;
3670 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003671 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003674 return NULL;
3675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003676 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 +01003677 Token * _keyword;
3678 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003679 expr_ty a;
3680 asdl_seq* b;
3681 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003682 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003683 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003684 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003685 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003686 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003687 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003689 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003691 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003692 )
3693 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003694 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 +01003695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3696 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003698 return NULL;
3699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003700 int _end_lineno = _token->end_lineno;
3701 UNUSED(_end_lineno); // Only used by EXTRA macro
3702 int _end_col_offset = _token->end_col_offset;
3703 UNUSED(_end_col_offset); // Only used by EXTRA macro
3704 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3705 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003706 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003708 return NULL;
3709 }
3710 goto done;
3711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003712 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003713 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003715 }
3716 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003718 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003719 return NULL;
3720 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003721 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 +01003722 Token * _keyword;
3723 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003724 expr_ty a;
3725 asdl_seq* b;
3726 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003727 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003728 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003729 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003730 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003731 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003732 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003734 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003736 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 )
3738 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003739 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 +01003740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3741 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003743 return NULL;
3744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003745 int _end_lineno = _token->end_lineno;
3746 UNUSED(_end_lineno); // Only used by EXTRA macro
3747 int _end_col_offset = _token->end_col_offset;
3748 UNUSED(_end_col_offset); // Only used by EXTRA macro
3749 _res = _Py_If ( a , b , c , EXTRA );
3750 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003751 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003753 return NULL;
3754 }
3755 goto done;
3756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003757 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003758 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003761 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003762 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003763 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003764 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003765}
3766
3767// else_block: 'else' ':' block
3768static asdl_seq*
3769else_block_rule(Parser *p)
3770{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003771 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003774 return NULL;
3775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003776 asdl_seq* _res = NULL;
3777 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003778 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003779 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003780 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003781 return NULL;
3782 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003783 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003784 Token * _keyword;
3785 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003786 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003787 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003788 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003789 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003790 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003791 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003792 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003793 )
3794 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003795 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 +01003796 _res = b;
3797 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003798 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003800 return NULL;
3801 }
3802 goto done;
3803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003804 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003805 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003808 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003809 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003810 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003811 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003812}
3813
3814// while_stmt: 'while' named_expression ':' block else_block?
3815static stmt_ty
3816while_stmt_rule(Parser *p)
3817{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003818 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003821 return NULL;
3822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003823 stmt_ty _res = NULL;
3824 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3826 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003828 return NULL;
3829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003830 int _start_lineno = p->tokens[_mark]->lineno;
3831 UNUSED(_start_lineno); // Only used by EXTRA macro
3832 int _start_col_offset = p->tokens[_mark]->col_offset;
3833 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003834 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003836 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003837 return NULL;
3838 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003839 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 +01003840 Token * _keyword;
3841 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003842 expr_ty a;
3843 asdl_seq* b;
3844 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003845 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003846 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003848 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003849 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003850 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003852 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003854 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003855 )
3856 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003857 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 +01003858 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3859 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003861 return NULL;
3862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003863 int _end_lineno = _token->end_lineno;
3864 UNUSED(_end_lineno); // Only used by EXTRA macro
3865 int _end_col_offset = _token->end_col_offset;
3866 UNUSED(_end_col_offset); // Only used by EXTRA macro
3867 _res = _Py_While ( a , b , c , EXTRA );
3868 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003871 return NULL;
3872 }
3873 goto done;
3874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003875 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003876 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003879 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003880 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003881 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003882 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003883}
3884
Guido van Rossumc001c092020-04-30 12:12:19 -07003885// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003886// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3887// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3888// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003889static stmt_ty
3890for_stmt_rule(Parser *p)
3891{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003892 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003895 return NULL;
3896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003897 stmt_ty _res = NULL;
3898 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003899 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3900 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003902 return NULL;
3903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003904 int _start_lineno = p->tokens[_mark]->lineno;
3905 UNUSED(_start_lineno); // Only used by EXTRA macro
3906 int _start_col_offset = p->tokens[_mark]->col_offset;
3907 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003908 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003911 return NULL;
3912 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003913 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?"));
3914 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003915 Token * _keyword;
3916 Token * _keyword_1;
3917 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003918 asdl_seq* b;
3919 void *el;
3920 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003921 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003922 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003923 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003924 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003925 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003926 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003927 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003928 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003929 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003930 (_cut_var = 1)
3931 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003932 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003933 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003934 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003936 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003938 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003940 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003941 )
3942 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003943 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 +01003944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3945 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003946 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003947 return NULL;
3948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003949 int _end_lineno = _token->end_lineno;
3950 UNUSED(_end_lineno); // Only used by EXTRA macro
3951 int _end_col_offset = _token->end_col_offset;
3952 UNUSED(_end_col_offset); // Only used by EXTRA macro
3953 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3954 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003955 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003956 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003957 return NULL;
3958 }
3959 goto done;
3960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003961 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003962 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3964 if (_cut_var) {
3965 D(p->level--);
3966 return NULL;
3967 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003968 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003969 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003972 return NULL;
3973 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003974 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?"));
3975 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003976 Token * _keyword;
3977 Token * _keyword_1;
3978 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003979 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003980 asdl_seq* b;
3981 void *el;
3982 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003983 expr_ty t;
3984 void *tc;
3985 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003986 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003987 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003988 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003989 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003990 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003991 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003992 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003993 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003994 (_cut_var = 1)
3995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003996 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003997 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003998 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004000 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004002 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004004 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004005 )
4006 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004007 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 +01004008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4009 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004011 return NULL;
4012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004013 int _end_lineno = _token->end_lineno;
4014 UNUSED(_end_lineno); // Only used by EXTRA macro
4015 int _end_col_offset = _token->end_col_offset;
4016 UNUSED(_end_col_offset); // Only used by EXTRA macro
4017 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4018 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004021 return NULL;
4022 }
4023 goto done;
4024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004026 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4028 if (_cut_var) {
4029 D(p->level--);
4030 return NULL;
4031 }
4032 }
4033 { // invalid_for_target
4034 if (p->error_indicator) {
4035 D(p->level--);
4036 return NULL;
4037 }
4038 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4039 void *invalid_for_target_var;
4040 if (
4041 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4042 )
4043 {
4044 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4045 _res = invalid_for_target_var;
4046 goto done;
4047 }
4048 p->mark = _mark;
4049 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004052 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004053 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004054 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004055 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004056}
4057
4058// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004059// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004060// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004061// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004062// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004063static stmt_ty
4064with_stmt_rule(Parser *p)
4065{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004066 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004069 return NULL;
4070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004071 stmt_ty _res = NULL;
4072 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004073 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4074 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004076 return NULL;
4077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004078 int _start_lineno = p->tokens[_mark]->lineno;
4079 UNUSED(_start_lineno); // Only used by EXTRA macro
4080 int _start_col_offset = p->tokens[_mark]->col_offset;
4081 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004082 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004084 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004085 return NULL;
4086 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004087 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 +01004088 Token * _keyword;
4089 Token * _literal;
4090 Token * _literal_1;
4091 Token * _literal_2;
4092 void *_opt_var;
4093 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004094 asdl_seq * a;
4095 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004096 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004097 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004098 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004099 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004100 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004101 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004102 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004103 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004104 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004105 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004106 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004107 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004108 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004109 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004110 )
4111 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004112 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 +01004113 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4114 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004116 return NULL;
4117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004118 int _end_lineno = _token->end_lineno;
4119 UNUSED(_end_lineno); // Only used by EXTRA macro
4120 int _end_col_offset = _token->end_col_offset;
4121 UNUSED(_end_col_offset); // Only used by EXTRA macro
4122 _res = _Py_With ( a , b , NULL , EXTRA );
4123 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004126 return NULL;
4127 }
4128 goto done;
4129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004131 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004133 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004134 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004137 return NULL;
4138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004139 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 +01004140 Token * _keyword;
4141 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004142 asdl_seq * a;
4143 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004144 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004145 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004146 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004147 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004148 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004149 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004150 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004152 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004153 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004154 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004155 )
4156 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004157 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 +01004158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4159 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004161 return NULL;
4162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004163 int _end_lineno = _token->end_lineno;
4164 UNUSED(_end_lineno); // Only used by EXTRA macro
4165 int _end_col_offset = _token->end_col_offset;
4166 UNUSED(_end_col_offset); // Only used by EXTRA macro
4167 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4168 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004169 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004170 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004171 return NULL;
4172 }
4173 goto done;
4174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004176 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004178 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004179 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004182 return NULL;
4183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004184 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 +01004185 Token * _keyword;
4186 Token * _literal;
4187 Token * _literal_1;
4188 Token * _literal_2;
4189 void *_opt_var;
4190 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004191 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004192 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004193 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004194 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004195 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004196 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004197 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004199 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004200 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004201 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004202 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004203 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004204 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004205 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004207 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004208 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004209 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004210 )
4211 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004212 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 +01004213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4214 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004215 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004216 return NULL;
4217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004218 int _end_lineno = _token->end_lineno;
4219 UNUSED(_end_lineno); // Only used by EXTRA macro
4220 int _end_col_offset = _token->end_col_offset;
4221 UNUSED(_end_col_offset); // Only used by EXTRA macro
4222 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4223 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004224 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004225 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004226 return NULL;
4227 }
4228 goto done;
4229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004230 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004231 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004233 }
4234 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004236 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004237 return NULL;
4238 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004239 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 +01004240 Token * _keyword;
4241 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004242 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004243 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004244 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004245 void *tc;
4246 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004247 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004248 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004249 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004250 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004251 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004252 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004253 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004254 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004255 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004257 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004258 )
4259 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004260 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 +01004261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4262 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004263 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004264 return NULL;
4265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004266 int _end_lineno = _token->end_lineno;
4267 UNUSED(_end_lineno); // Only used by EXTRA macro
4268 int _end_col_offset = _token->end_col_offset;
4269 UNUSED(_end_col_offset); // Only used by EXTRA macro
4270 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4271 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004272 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004274 return NULL;
4275 }
4276 goto done;
4277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004278 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004279 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004282 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004283 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004284 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004285 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004286}
4287
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004288// with_item: expression 'as' target &(',' | ')' | ':') | invalid_with_item | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004289static withitem_ty
4290with_item_rule(Parser *p)
4291{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004292 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004294 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004295 return NULL;
4296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004297 withitem_ty _res = NULL;
4298 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004299 { // expression 'as' target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004301 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004302 return NULL;
4303 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004304 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4305 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004306 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004307 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004309 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004310 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004311 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4312 &&
4313 (t = target_rule(p)) // target
4314 &&
4315 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004316 )
4317 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004318 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4319 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004320 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004321 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004322 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004323 return NULL;
4324 }
4325 goto done;
4326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004327 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004328 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4330 }
4331 { // invalid_with_item
4332 if (p->error_indicator) {
4333 D(p->level--);
4334 return NULL;
4335 }
4336 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4337 void *invalid_with_item_var;
4338 if (
4339 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4340 )
4341 {
4342 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4343 _res = invalid_with_item_var;
4344 goto done;
4345 }
4346 p->mark = _mark;
4347 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4349 }
4350 { // expression
4351 if (p->error_indicator) {
4352 D(p->level--);
4353 return NULL;
4354 }
4355 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4356 expr_ty e;
4357 if (
4358 (e = expression_rule(p)) // expression
4359 )
4360 {
4361 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4362 _res = _Py_withitem ( e , NULL , p -> arena );
4363 if (_res == NULL && PyErr_Occurred()) {
4364 p->error_indicator = 1;
4365 D(p->level--);
4366 return NULL;
4367 }
4368 goto done;
4369 }
4370 p->mark = _mark;
4371 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004374 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004375 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004376 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004377 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004378}
4379
4380// try_stmt:
4381// | 'try' ':' block finally_block
4382// | 'try' ':' block except_block+ else_block? finally_block?
4383static stmt_ty
4384try_stmt_rule(Parser *p)
4385{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004386 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004389 return NULL;
4390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004391 stmt_ty _res = NULL;
4392 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004393 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4394 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004396 return NULL;
4397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004398 int _start_lineno = p->tokens[_mark]->lineno;
4399 UNUSED(_start_lineno); // Only used by EXTRA macro
4400 int _start_col_offset = p->tokens[_mark]->col_offset;
4401 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004402 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004405 return NULL;
4406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004407 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 +01004408 Token * _keyword;
4409 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004410 asdl_seq* b;
4411 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004412 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004413 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004414 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004415 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004416 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004417 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004418 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004419 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004420 )
4421 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004422 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 +01004423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4424 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004426 return NULL;
4427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004428 int _end_lineno = _token->end_lineno;
4429 UNUSED(_end_lineno); // Only used by EXTRA macro
4430 int _end_col_offset = _token->end_col_offset;
4431 UNUSED(_end_col_offset); // Only used by EXTRA macro
4432 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4433 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004436 return NULL;
4437 }
4438 goto done;
4439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004441 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004443 }
4444 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004446 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004447 return NULL;
4448 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004449 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 +01004450 Token * _keyword;
4451 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004452 asdl_seq* b;
4453 void *el;
4454 asdl_seq * ex;
4455 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004456 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004457 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004459 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004460 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004461 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004462 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004463 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004465 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004466 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004467 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004468 )
4469 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004470 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 +01004471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4472 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004474 return NULL;
4475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004476 int _end_lineno = _token->end_lineno;
4477 UNUSED(_end_lineno); // Only used by EXTRA macro
4478 int _end_col_offset = _token->end_col_offset;
4479 UNUSED(_end_col_offset); // Only used by EXTRA macro
4480 _res = _Py_Try ( b , ex , el , f , EXTRA );
4481 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004482 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004484 return NULL;
4485 }
4486 goto done;
4487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004489 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004496}
4497
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004498// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004499static excepthandler_ty
4500except_block_rule(Parser *p)
4501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004505 return NULL;
4506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004507 excepthandler_ty _res = NULL;
4508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004512 return NULL;
4513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004514 int _start_lineno = p->tokens[_mark]->lineno;
4515 UNUSED(_start_lineno); // Only used by EXTRA macro
4516 int _start_col_offset = p->tokens[_mark]->col_offset;
4517 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004518 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004521 return NULL;
4522 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004523 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 +01004524 Token * _keyword;
4525 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004526 asdl_seq* b;
4527 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004528 void *t;
4529 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004530 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004531 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004532 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004533 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004534 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004535 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004536 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004537 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004538 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004539 )
4540 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004541 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 +01004542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4543 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004545 return NULL;
4546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004547 int _end_lineno = _token->end_lineno;
4548 UNUSED(_end_lineno); // Only used by EXTRA macro
4549 int _end_col_offset = _token->end_col_offset;
4550 UNUSED(_end_col_offset); // Only used by EXTRA macro
4551 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004555 return NULL;
4556 }
4557 goto done;
4558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004560 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004562 }
4563 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004565 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004566 return NULL;
4567 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004568 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004569 Token * _keyword;
4570 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004571 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004572 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004573 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004574 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004575 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004576 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004577 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004578 )
4579 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004580 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 +01004581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4582 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004584 return NULL;
4585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004586 int _end_lineno = _token->end_lineno;
4587 UNUSED(_end_lineno); // Only used by EXTRA macro
4588 int _end_col_offset = _token->end_col_offset;
4589 UNUSED(_end_col_offset); // Only used by EXTRA macro
4590 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4591 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004592 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004594 return NULL;
4595 }
4596 goto done;
4597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004598 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004599 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004602 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004603 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004604 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004605 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004606}
4607
4608// finally_block: 'finally' ':' block
4609static asdl_seq*
4610finally_block_rule(Parser *p)
4611{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004612 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004614 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004615 return NULL;
4616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004617 asdl_seq* _res = NULL;
4618 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004619 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004621 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004622 return NULL;
4623 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004624 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004625 Token * _keyword;
4626 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004627 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004628 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004629 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004630 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004631 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004633 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004634 )
4635 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004636 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 +01004637 _res = a;
4638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004641 return NULL;
4642 }
4643 goto done;
4644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004646 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004649 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004650 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004651 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004652 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004653}
4654
4655// return_stmt: 'return' star_expressions?
4656static stmt_ty
4657return_stmt_rule(Parser *p)
4658{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004659 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004660 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004662 return NULL;
4663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004664 stmt_ty _res = NULL;
4665 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004666 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004669 return NULL;
4670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004671 int _start_lineno = p->tokens[_mark]->lineno;
4672 UNUSED(_start_lineno); // Only used by EXTRA macro
4673 int _start_col_offset = p->tokens[_mark]->col_offset;
4674 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004675 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004678 return NULL;
4679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004680 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 +01004681 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004682 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004683 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004684 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004685 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004686 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004687 )
4688 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004689 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 +01004690 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4691 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004693 return NULL;
4694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004695 int _end_lineno = _token->end_lineno;
4696 UNUSED(_end_lineno); // Only used by EXTRA macro
4697 int _end_col_offset = _token->end_col_offset;
4698 UNUSED(_end_col_offset); // Only used by EXTRA macro
4699 _res = _Py_Return ( a , EXTRA );
4700 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004701 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004702 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004703 return NULL;
4704 }
4705 goto done;
4706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004707 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004708 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004711 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004712 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004713 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004714 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004715}
4716
4717// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4718static stmt_ty
4719raise_stmt_rule(Parser *p)
4720{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004721 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004722 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004723 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004724 return NULL;
4725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004726 stmt_ty _res = NULL;
4727 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004731 return NULL;
4732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004733 int _start_lineno = p->tokens[_mark]->lineno;
4734 UNUSED(_start_lineno); // Only used by EXTRA macro
4735 int _start_col_offset = p->tokens[_mark]->col_offset;
4736 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004737 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004739 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004740 return NULL;
4741 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004742 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 +01004743 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004744 expr_ty a;
4745 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004746 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004747 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004748 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004749 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004750 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004751 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004752 )
4753 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004754 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 +01004755 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4756 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004758 return NULL;
4759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004760 int _end_lineno = _token->end_lineno;
4761 UNUSED(_end_lineno); // Only used by EXTRA macro
4762 int _end_col_offset = _token->end_col_offset;
4763 UNUSED(_end_col_offset); // Only used by EXTRA macro
4764 _res = _Py_Raise ( a , b , EXTRA );
4765 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004766 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004767 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004768 return NULL;
4769 }
4770 goto done;
4771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004772 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004773 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004775 }
4776 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004779 return NULL;
4780 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004781 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004782 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004783 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004784 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004785 )
4786 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004787 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4789 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004791 return NULL;
4792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004793 int _end_lineno = _token->end_lineno;
4794 UNUSED(_end_lineno); // Only used by EXTRA macro
4795 int _end_col_offset = _token->end_col_offset;
4796 UNUSED(_end_col_offset); // Only used by EXTRA macro
4797 _res = _Py_Raise ( NULL , NULL , EXTRA );
4798 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004799 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004801 return NULL;
4802 }
4803 goto done;
4804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004805 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004806 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004809 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004810 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004811 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004812 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004813}
4814
4815// function_def: decorators function_def_raw | function_def_raw
4816static stmt_ty
4817function_def_rule(Parser *p)
4818{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004819 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004822 return NULL;
4823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004824 stmt_ty _res = NULL;
4825 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004826 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004828 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004829 return NULL;
4830 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004831 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 +01004832 asdl_seq* d;
4833 stmt_ty f;
4834 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004835 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004836 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004837 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004838 )
4839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004840 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 +01004841 _res = _PyPegen_function_def_decorators ( p , d , f );
4842 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004843 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004845 return NULL;
4846 }
4847 goto done;
4848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004849 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004850 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004852 }
4853 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004854 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004855 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004856 return NULL;
4857 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004858 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 +01004859 stmt_ty function_def_raw_var;
4860 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004861 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004862 )
4863 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004864 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 +01004865 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004866 goto done;
4867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004869 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004872 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004873 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004874 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004875 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004876}
4877
Guido van Rossumc001c092020-04-30 12:12:19 -07004878// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004879// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4880// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004881static stmt_ty
4882function_def_raw_rule(Parser *p)
4883{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004884 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004887 return NULL;
4888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004889 stmt_ty _res = NULL;
4890 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4892 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004893 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004894 return NULL;
4895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004896 int _start_lineno = p->tokens[_mark]->lineno;
4897 UNUSED(_start_lineno); // Only used by EXTRA macro
4898 int _start_col_offset = p->tokens[_mark]->col_offset;
4899 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004900 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004902 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004903 return NULL;
4904 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004905 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 +01004906 Token * _keyword;
4907 Token * _literal;
4908 Token * _literal_1;
4909 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004910 void *a;
4911 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004912 expr_ty n;
4913 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004914 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004915 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004916 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004917 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004918 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004919 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004920 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004921 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004922 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004923 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004924 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004925 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004926 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004927 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004928 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004929 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004930 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004931 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004932 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004933 )
4934 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004935 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 +01004936 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4937 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004939 return NULL;
4940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004941 int _end_lineno = _token->end_lineno;
4942 UNUSED(_end_lineno); // Only used by EXTRA macro
4943 int _end_col_offset = _token->end_col_offset;
4944 UNUSED(_end_col_offset); // Only used by EXTRA macro
4945 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4946 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004947 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004948 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004949 return NULL;
4950 }
4951 goto done;
4952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004953 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004954 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004956 }
4957 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004959 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004960 return NULL;
4961 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004962 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 +01004963 Token * _keyword;
4964 Token * _literal;
4965 Token * _literal_1;
4966 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004967 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004968 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004969 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004970 expr_ty n;
4971 void *params;
4972 void *tc;
4973 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004974 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004975 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004976 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004977 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004978 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004980 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004982 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004983 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004984 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004985 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004986 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004987 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004988 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004989 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004990 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004991 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004992 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004993 )
4994 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004995 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 +01004996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4997 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004998 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004999 return NULL;
5000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005001 int _end_lineno = _token->end_lineno;
5002 UNUSED(_end_lineno); // Only used by EXTRA macro
5003 int _end_col_offset = _token->end_col_offset;
5004 UNUSED(_end_col_offset); // Only used by EXTRA macro
5005 _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 ) );
5006 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005007 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005009 return NULL;
5010 }
5011 goto done;
5012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005013 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005014 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005017 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005018 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005019 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005020 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005021}
5022
Guido van Rossumc001c092020-04-30 12:12:19 -07005023// func_type_comment:
5024// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5025// | invalid_double_type_comments
5026// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005027static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005028func_type_comment_rule(Parser *p)
5029{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005030 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005031 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005032 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005033 return NULL;
5034 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005035 Token* _res = NULL;
5036 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005037 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005038 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005039 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005040 return NULL;
5041 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005042 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 +01005043 Token * newline_var;
5044 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005045 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005046 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005047 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005048 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005049 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005050 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005051 )
5052 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005053 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 +01005054 _res = t;
5055 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005056 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005057 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005058 return NULL;
5059 }
5060 goto done;
5061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005062 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005063 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005065 }
5066 { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005069 return NULL;
5070 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005071 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 -07005072 void *invalid_double_type_comments_var;
5073 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005074 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005075 )
5076 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005077 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 +01005078 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005079 goto done;
5080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005081 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005082 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005084 }
5085 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005088 return NULL;
5089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005090 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 +01005091 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005092 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005093 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005094 )
5095 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005096 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 +01005097 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005098 goto done;
5099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005101 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005104 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005105 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005106 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005107 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005108}
5109
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005110// params: invalid_parameters | parameters
5111static arguments_ty
5112params_rule(Parser *p)
5113{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005114 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005115 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005116 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005117 return NULL;
5118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005119 arguments_ty _res = NULL;
5120 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005121 { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005123 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005124 return NULL;
5125 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005126 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005127 void *invalid_parameters_var;
5128 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005129 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005130 )
5131 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005132 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005133 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005134 goto done;
5135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005137 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005139 }
5140 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005143 return NULL;
5144 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005145 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005146 arguments_ty parameters_var;
5147 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005148 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005149 )
5150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005151 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005152 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005153 goto done;
5154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005155 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005156 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005159 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005160 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005161 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005162 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005163}
5164
5165// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005166// | slash_no_default param_no_default* param_with_default* star_etc?
5167// | slash_with_default param_with_default* star_etc?
5168// | param_no_default+ param_with_default* star_etc?
5169// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005170// | star_etc
5171static arguments_ty
5172parameters_rule(Parser *p)
5173{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005174 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005176 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005177 return NULL;
5178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005179 arguments_ty _res = NULL;
5180 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005181 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005184 return NULL;
5185 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005186 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 +01005187 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005188 asdl_seq * b;
5189 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005190 void *d;
5191 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005192 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005193 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005194 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005195 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005196 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005197 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005198 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005199 )
5200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005201 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 +01005202 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005206 return NULL;
5207 }
5208 goto done;
5209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005211 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5212 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 +01005213 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005214 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005217 return NULL;
5218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005219 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 +01005220 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005221 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005222 void *c;
5223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005224 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005225 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005226 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005227 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005228 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005229 )
5230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005231 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 +01005232 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5233 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005236 return NULL;
5237 }
5238 goto done;
5239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005241 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005243 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005244 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005246 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005247 return NULL;
5248 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005249 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 -07005250 asdl_seq * a;
5251 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005252 void *c;
5253 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005254 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005255 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005256 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005257 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005258 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005259 )
5260 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005261 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 +01005262 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5263 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005264 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005265 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005266 return NULL;
5267 }
5268 goto done;
5269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005271 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005273 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005274 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005276 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005277 return NULL;
5278 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005279 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 -07005280 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005281 void *b;
5282 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005283 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005284 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005285 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005286 )
5287 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005288 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 +01005289 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5290 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005291 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005293 return NULL;
5294 }
5295 goto done;
5296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005297 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005298 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005300 }
5301 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005303 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005304 return NULL;
5305 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005306 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005307 StarEtc* a;
5308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005309 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005310 )
5311 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005312 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005313 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5314 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005317 return NULL;
5318 }
5319 goto done;
5320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005321 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005322 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005325 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005326 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005327 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005328 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005329}
5330
Guido van Rossumc001c092020-04-30 12:12:19 -07005331// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005332static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005333slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005334{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005335 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005338 return NULL;
5339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005340 asdl_seq* _res = NULL;
5341 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005342 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005343 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005344 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005345 return NULL;
5346 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005347 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 +01005348 Token * _literal;
5349 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005350 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005351 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005352 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005353 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005354 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005355 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005356 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005357 )
5358 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005359 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 +01005360 _res = a;
5361 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005362 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005363 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005364 return NULL;
5365 }
5366 goto done;
5367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005368 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005369 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005371 }
5372 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005374 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005375 return NULL;
5376 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005377 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 +01005378 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005379 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005380 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005381 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005382 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005383 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005384 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005385 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005386 )
5387 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005388 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 +01005389 _res = a;
5390 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005391 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005393 return NULL;
5394 }
5395 goto done;
5396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005397 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005398 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005401 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005402 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005403 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005404 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005405}
5406
Guido van Rossumc001c092020-04-30 12:12:19 -07005407// slash_with_default:
5408// | param_no_default* param_with_default+ '/' ','
5409// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005410static SlashWithDefault*
5411slash_with_default_rule(Parser *p)
5412{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005413 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005416 return NULL;
5417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005418 SlashWithDefault* _res = NULL;
5419 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005420 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005423 return NULL;
5424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005425 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 +01005426 Token * _literal;
5427 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005428 asdl_seq * a;
5429 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005430 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005431 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005432 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005433 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005434 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005435 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005436 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005437 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005438 )
5439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005440 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 +01005441 _res = _PyPegen_slash_with_default ( p , a , b );
5442 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005444 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005445 return NULL;
5446 }
5447 goto done;
5448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005450 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005452 }
5453 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005456 return NULL;
5457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005458 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 +01005459 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005460 asdl_seq * a;
5461 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005462 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005463 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005464 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005465 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005466 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005467 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005468 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005469 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005470 )
5471 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005472 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 +01005473 _res = _PyPegen_slash_with_default ( p , a , b );
5474 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005477 return NULL;
5478 }
5479 goto done;
5480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005481 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005482 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005485 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005486 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005487 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005488 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005489}
5490
5491// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005492// | '*' param_no_default param_maybe_default* kwds?
5493// | '*' ',' param_maybe_default+ kwds?
5494// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005495// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005496static StarEtc*
5497star_etc_rule(Parser *p)
5498{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005499 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005502 return NULL;
5503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005504 StarEtc* _res = NULL;
5505 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005506 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005509 return NULL;
5510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005511 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 +01005512 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005513 arg_ty a;
5514 asdl_seq * b;
5515 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005516 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005517 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005518 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005519 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005520 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005521 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005522 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005523 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005524 )
5525 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005526 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 +01005527 _res = _PyPegen_star_etc ( p , a , b , c );
5528 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005529 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005530 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005531 return NULL;
5532 }
5533 goto done;
5534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005535 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005536 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005538 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005539 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005540 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005541 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005542 return NULL;
5543 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005544 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 +01005545 Token * _literal;
5546 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005547 asdl_seq * b;
5548 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005549 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005550 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005551 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005552 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005553 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005554 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005555 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005556 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005557 )
5558 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005559 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 +01005560 _res = _PyPegen_star_etc ( p , NULL , b , c );
5561 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005562 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005564 return NULL;
5565 }
5566 goto done;
5567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005568 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005569 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005571 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005572 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005575 return NULL;
5576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005577 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005578 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005579 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005580 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005581 )
5582 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005583 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005584 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5585 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005586 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005588 return NULL;
5589 }
5590 goto done;
5591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005593 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005595 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005596 { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005599 return NULL;
5600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005601 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 +03005602 void *invalid_star_etc_var;
5603 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005604 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005605 )
5606 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005607 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 +01005608 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005609 goto done;
5610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005611 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005612 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005615 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005616 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005617 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005618 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005619}
5620
Guido van Rossumc001c092020-04-30 12:12:19 -07005621// kwds: '**' param_no_default
5622static arg_ty
5623kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005624{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005625 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005626 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005627 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005628 return NULL;
5629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005630 arg_ty _res = NULL;
5631 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005632 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005633 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005634 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005635 return NULL;
5636 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005637 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005638 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005639 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005640 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005641 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005642 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005643 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005644 )
5645 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005646 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 +01005647 _res = a;
5648 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005649 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005650 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005651 return NULL;
5652 }
5653 goto done;
5654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005655 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005656 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005659 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005660 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005661 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005662 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005663}
5664
5665// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5666static arg_ty
5667param_no_default_rule(Parser *p)
5668{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005669 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005671 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005672 return NULL;
5673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005674 arg_ty _res = NULL;
5675 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005676 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005678 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005679 return NULL;
5680 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005681 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 +01005682 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005683 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005684 void *tc;
5685 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005686 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005687 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005688 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005690 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005691 )
5692 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005693 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 +01005694 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5695 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005696 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005698 return NULL;
5699 }
5700 goto done;
5701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005702 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005703 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005705 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005706 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005708 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005709 return NULL;
5710 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005711 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 -07005712 arg_ty a;
5713 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005714 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005715 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005716 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005717 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005718 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005719 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005720 )
5721 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005722 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 +01005723 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5724 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005725 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005727 return NULL;
5728 }
5729 goto done;
5730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005731 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005732 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005735 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005736 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005737 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005738 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005739}
5740
Guido van Rossumc001c092020-04-30 12:12:19 -07005741// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005742static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005743param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005744{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005745 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005746 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005748 return NULL;
5749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005750 NameDefaultPair* _res = NULL;
5751 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005752 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005754 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005755 return NULL;
5756 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005757 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 +01005758 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005759 arg_ty a;
5760 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005761 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005762 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005763 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005764 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005765 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005766 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005767 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005768 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005769 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005770 )
5771 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005772 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 +01005773 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5774 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005775 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005776 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005777 return NULL;
5778 }
5779 goto done;
5780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005781 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005782 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005784 }
5785 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005787 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005788 return NULL;
5789 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005790 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 -07005791 arg_ty a;
5792 expr_ty c;
5793 void *tc;
5794 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005795 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005796 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005797 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005798 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005799 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005800 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005801 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005802 )
5803 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005804 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 +01005805 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5806 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005807 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005809 return NULL;
5810 }
5811 goto done;
5812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005813 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005814 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005817 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005818 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005819 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005820 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005821}
5822
Guido van Rossumc001c092020-04-30 12:12:19 -07005823// param_maybe_default:
5824// | param default? ',' TYPE_COMMENT?
5825// | param default? TYPE_COMMENT? &')'
5826static NameDefaultPair*
5827param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005828{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005829 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005832 return NULL;
5833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005834 NameDefaultPair* _res = NULL;
5835 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005836 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005838 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005839 return NULL;
5840 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005841 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 +01005842 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005843 arg_ty a;
5844 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005845 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005846 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005847 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005848 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005849 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005850 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005851 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005852 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005853 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005854 )
5855 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005856 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 +01005857 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5858 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005859 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005860 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005861 return NULL;
5862 }
5863 goto done;
5864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005865 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005866 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005868 }
5869 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005871 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005872 return NULL;
5873 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005874 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 -07005875 arg_ty a;
5876 void *c;
5877 void *tc;
5878 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005879 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005880 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005881 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005882 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005883 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005884 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005885 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005886 )
5887 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005888 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 +01005889 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5890 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005891 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005893 return NULL;
5894 }
5895 goto done;
5896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005897 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005898 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005901 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005902 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005903 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005904 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005905}
5906
Guido van Rossumc001c092020-04-30 12:12:19 -07005907// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005908static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005909param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005910{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005911 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005913 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005914 return NULL;
5915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005916 arg_ty _res = NULL;
5917 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005918 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5919 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005921 return NULL;
5922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005923 int _start_lineno = p->tokens[_mark]->lineno;
5924 UNUSED(_start_lineno); // Only used by EXTRA macro
5925 int _start_col_offset = p->tokens[_mark]->col_offset;
5926 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005927 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005929 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005930 return NULL;
5931 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005932 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005933 expr_ty a;
5934 void *b;
5935 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005936 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005938 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005939 )
5940 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005941 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5943 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005945 return NULL;
5946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005947 int _end_lineno = _token->end_lineno;
5948 UNUSED(_end_lineno); // Only used by EXTRA macro
5949 int _end_col_offset = _token->end_col_offset;
5950 UNUSED(_end_col_offset); // Only used by EXTRA macro
5951 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5952 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005953 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005955 return NULL;
5956 }
5957 goto done;
5958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005960 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005963 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005964 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005966 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005967}
5968
Guido van Rossumc001c092020-04-30 12:12:19 -07005969// annotation: ':' expression
5970static expr_ty
5971annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005972{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005973 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005975 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005976 return NULL;
5977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005978 expr_ty _res = NULL;
5979 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005980 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005982 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005983 return NULL;
5984 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005985 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005986 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005987 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005988 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005989 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005990 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005991 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005992 )
5993 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005994 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005995 _res = a;
5996 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005997 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005999 return NULL;
6000 }
6001 goto done;
6002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006003 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006004 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006007 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006008 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006009 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006010 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006011}
6012
Guido van Rossumc001c092020-04-30 12:12:19 -07006013// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006014static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006015default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006016{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006017 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006018 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006020 return NULL;
6021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006022 expr_ty _res = NULL;
6023 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006024 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006025 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006026 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006027 return NULL;
6028 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006029 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006030 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006031 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006032 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006033 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006034 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006035 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006036 )
6037 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006038 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006039 _res = a;
6040 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006041 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006042 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006043 return NULL;
6044 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006045 goto done;
6046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006047 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006048 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006051 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006052 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006053 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006054 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006055}
6056
6057// decorators: (('@' named_expression NEWLINE))+
6058static asdl_seq*
6059decorators_rule(Parser *p)
6060{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006061 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006062 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006064 return NULL;
6065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006066 asdl_seq* _res = NULL;
6067 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006068 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006070 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006071 return NULL;
6072 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006073 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006074 asdl_seq * a;
6075 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006076 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006077 )
6078 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006079 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 +01006080 _res = a;
6081 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006082 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006084 return NULL;
6085 }
6086 goto done;
6087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006088 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006089 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006092 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006093 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006095 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006096}
6097
6098// class_def: decorators class_def_raw | class_def_raw
6099static stmt_ty
6100class_def_rule(Parser *p)
6101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006102 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006105 return NULL;
6106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006107 stmt_ty _res = NULL;
6108 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006109 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006111 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006112 return NULL;
6113 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006114 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 +01006115 asdl_seq* a;
6116 stmt_ty b;
6117 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006118 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006119 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006120 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006121 )
6122 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006123 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 +01006124 _res = _PyPegen_class_def_decorators ( p , a , b );
6125 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006126 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006128 return NULL;
6129 }
6130 goto done;
6131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006132 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006133 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006135 }
6136 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006138 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006139 return NULL;
6140 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006141 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 +01006142 stmt_ty class_def_raw_var;
6143 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006144 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006145 )
6146 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006147 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 +01006148 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006149 goto done;
6150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006151 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006152 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006155 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006156 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006157 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006158 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006159}
6160
6161// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6162static stmt_ty
6163class_def_raw_rule(Parser *p)
6164{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006165 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006167 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006168 return NULL;
6169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006170 stmt_ty _res = NULL;
6171 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006172 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6173 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006175 return NULL;
6176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006177 int _start_lineno = p->tokens[_mark]->lineno;
6178 UNUSED(_start_lineno); // Only used by EXTRA macro
6179 int _start_col_offset = p->tokens[_mark]->col_offset;
6180 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006181 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006184 return NULL;
6185 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006186 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 +01006187 Token * _keyword;
6188 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006189 expr_ty a;
6190 void *b;
6191 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006192 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006193 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006194 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006195 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006196 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006197 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006199 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006200 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006201 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006202 )
6203 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006204 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 +01006205 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6206 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006207 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006208 return NULL;
6209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006210 int _end_lineno = _token->end_lineno;
6211 UNUSED(_end_lineno); // Only used by EXTRA macro
6212 int _end_col_offset = _token->end_col_offset;
6213 UNUSED(_end_col_offset); // Only used by EXTRA macro
6214 _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 );
6215 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006216 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006218 return NULL;
6219 }
6220 goto done;
6221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006222 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006223 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006226 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006227 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006228 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006229 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006230}
6231
6232// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6233static asdl_seq*
6234block_rule(Parser *p)
6235{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006236 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006237 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006238 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006239 return NULL;
6240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006241 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006242 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6243 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006244 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006246 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006247 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006250 return NULL;
6251 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006252 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 +01006253 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006254 Token * dedent_var;
6255 Token * indent_var;
6256 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006257 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006258 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006259 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006260 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006261 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006262 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006263 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006264 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006265 )
6266 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006267 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 +01006268 _res = a;
6269 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006270 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006272 return NULL;
6273 }
6274 goto done;
6275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006277 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006279 }
6280 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006283 return NULL;
6284 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006285 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006286 asdl_seq* simple_stmt_var;
6287 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006288 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006289 )
6290 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006291 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006292 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006293 goto done;
6294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006295 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006296 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006298 }
6299 { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006301 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006302 return NULL;
6303 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006304 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006305 void *invalid_block_var;
6306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006307 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006308 )
6309 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006310 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006311 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006312 goto done;
6313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006315 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006318 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006319 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006320 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006321 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006322 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006323}
6324
6325// expressions_list: ','.star_expression+ ','?
6326static asdl_seq*
6327expressions_list_rule(Parser *p)
6328{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006329 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006332 return NULL;
6333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006334 asdl_seq* _res = NULL;
6335 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006336 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006337 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006338 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006339 return NULL;
6340 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006341 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006342 void *_opt_var;
6343 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006344 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006345 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006346 (a = _gather_70_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006347 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006348 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006349 )
6350 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006351 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 +01006352 _res = a;
6353 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006354 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006355 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006356 return NULL;
6357 }
6358 goto done;
6359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006360 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006361 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006364 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006365 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006366 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006367 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006368}
6369
6370// star_expressions:
6371// | star_expression ((',' star_expression))+ ','?
6372// | star_expression ','
6373// | star_expression
6374static expr_ty
6375star_expressions_rule(Parser *p)
6376{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006377 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006379 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006380 return NULL;
6381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006382 expr_ty _res = NULL;
6383 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006384 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6385 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006386 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006387 return NULL;
6388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006389 int _start_lineno = p->tokens[_mark]->lineno;
6390 UNUSED(_start_lineno); // Only used by EXTRA macro
6391 int _start_col_offset = p->tokens[_mark]->col_offset;
6392 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006393 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006396 return NULL;
6397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006398 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006399 void *_opt_var;
6400 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006401 expr_ty a;
6402 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006403 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006404 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006405 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006406 (b = _loop1_72_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006407 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006408 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006409 )
6410 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006411 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 +01006412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6413 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006415 return NULL;
6416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006417 int _end_lineno = _token->end_lineno;
6418 UNUSED(_end_lineno); // Only used by EXTRA macro
6419 int _end_col_offset = _token->end_col_offset;
6420 UNUSED(_end_col_offset); // Only used by EXTRA macro
6421 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006425 return NULL;
6426 }
6427 goto done;
6428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006430 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006432 }
6433 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006436 return NULL;
6437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006438 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006439 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006440 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006441 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006442 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006444 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006445 )
6446 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006447 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 +01006448 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6449 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006450 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006451 return NULL;
6452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006453 int _end_lineno = _token->end_lineno;
6454 UNUSED(_end_lineno); // Only used by EXTRA macro
6455 int _end_col_offset = _token->end_col_offset;
6456 UNUSED(_end_col_offset); // Only used by EXTRA macro
6457 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006461 return NULL;
6462 }
6463 goto done;
6464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006466 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006468 }
6469 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006471 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006472 return NULL;
6473 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006474 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006475 expr_ty star_expression_var;
6476 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006477 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006478 )
6479 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006480 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 +01006481 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006482 goto done;
6483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006484 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006485 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006488 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006489 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006490 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006491 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006492}
6493
6494// star_expression: '*' bitwise_or | expression
6495static expr_ty
6496star_expression_rule(Parser *p)
6497{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006498 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006501 return NULL;
6502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006503 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006504 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6505 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006506 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006512 return NULL;
6513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006514 int _start_lineno = p->tokens[_mark]->lineno;
6515 UNUSED(_start_lineno); // Only used by EXTRA macro
6516 int _start_col_offset = p->tokens[_mark]->col_offset;
6517 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006518 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006521 return NULL;
6522 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006523 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006524 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006525 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006526 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006527 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006528 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006529 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006530 )
6531 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006532 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 +01006533 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6534 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006535 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006536 return NULL;
6537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006538 int _end_lineno = _token->end_lineno;
6539 UNUSED(_end_lineno); // Only used by EXTRA macro
6540 int _end_col_offset = _token->end_col_offset;
6541 UNUSED(_end_col_offset); // Only used by EXTRA macro
6542 _res = _Py_Starred ( a , Load , EXTRA );
6543 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006544 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006546 return NULL;
6547 }
6548 goto done;
6549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006550 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006551 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006553 }
6554 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006556 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006557 return NULL;
6558 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006559 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006560 expr_ty expression_var;
6561 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006562 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006563 )
6564 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006565 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006566 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006567 goto done;
6568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006569 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006570 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006573 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006574 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006575 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006576 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006577 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006578}
6579
6580// star_named_expressions: ','.star_named_expression+ ','?
6581static asdl_seq*
6582star_named_expressions_rule(Parser *p)
6583{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006584 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006585 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006586 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006587 return NULL;
6588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006589 asdl_seq* _res = NULL;
6590 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006591 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006592 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006593 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006594 return NULL;
6595 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006596 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 +01006597 void *_opt_var;
6598 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006599 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006600 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006601 (a = _gather_73_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006602 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006603 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006604 )
6605 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006606 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 +01006607 _res = a;
6608 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006609 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006611 return NULL;
6612 }
6613 goto done;
6614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006616 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006619 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006620 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006621 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006622 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006623}
6624
6625// star_named_expression: '*' bitwise_or | named_expression
6626static expr_ty
6627star_named_expression_rule(Parser *p)
6628{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006629 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006632 return NULL;
6633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006634 expr_ty _res = NULL;
6635 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006636 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6637 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006639 return NULL;
6640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006641 int _start_lineno = p->tokens[_mark]->lineno;
6642 UNUSED(_start_lineno); // Only used by EXTRA macro
6643 int _start_col_offset = p->tokens[_mark]->col_offset;
6644 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006645 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006647 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006648 return NULL;
6649 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006650 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 +01006651 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006652 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006653 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006654 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006655 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006656 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006657 )
6658 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006659 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 +01006660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6661 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006663 return NULL;
6664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006665 int _end_lineno = _token->end_lineno;
6666 UNUSED(_end_lineno); // Only used by EXTRA macro
6667 int _end_col_offset = _token->end_col_offset;
6668 UNUSED(_end_col_offset); // Only used by EXTRA macro
6669 _res = _Py_Starred ( a , Load , EXTRA );
6670 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006671 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006673 return NULL;
6674 }
6675 goto done;
6676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006678 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006680 }
6681 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006683 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006684 return NULL;
6685 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006686 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 +01006687 expr_ty named_expression_var;
6688 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006689 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006690 )
6691 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006692 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 +01006693 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006694 goto done;
6695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006696 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006697 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006700 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006701 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006703 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006704}
6705
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006706// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006707static expr_ty
6708named_expression_rule(Parser *p)
6709{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006710 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006713 return NULL;
6714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006715 expr_ty _res = NULL;
6716 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006717 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6718 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006720 return NULL;
6721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006722 int _start_lineno = p->tokens[_mark]->lineno;
6723 UNUSED(_start_lineno); // Only used by EXTRA macro
6724 int _start_col_offset = p->tokens[_mark]->col_offset;
6725 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006726 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006729 return NULL;
6730 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006731 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6732 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006733 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006734 expr_ty a;
6735 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006736 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006737 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006738 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006739 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006740 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006741 (_cut_var = 1)
6742 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006743 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006744 )
6745 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006746 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 +01006747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6748 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006750 return NULL;
6751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006752 int _end_lineno = _token->end_lineno;
6753 UNUSED(_end_lineno); // Only used by EXTRA macro
6754 int _end_col_offset = _token->end_col_offset;
6755 UNUSED(_end_col_offset); // Only used by EXTRA macro
6756 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6757 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006758 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006760 return NULL;
6761 }
6762 goto done;
6763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006765 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6767 if (_cut_var) {
6768 D(p->level--);
6769 return NULL;
6770 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006771 }
6772 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006773 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006774 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006775 return NULL;
6776 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006777 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006778 expr_ty expression_var;
6779 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006780 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006781 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006782 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006783 )
6784 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006785 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006786 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006787 goto done;
6788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006789 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006790 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006792 }
6793 { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006795 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006796 return NULL;
6797 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006798 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 +01006799 void *invalid_named_expression_var;
6800 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006801 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006802 )
6803 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006804 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 +01006805 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006806 goto done;
6807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006808 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006809 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006812 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006813 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006815 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006816}
6817
6818// annotated_rhs: yield_expr | star_expressions
6819static expr_ty
6820annotated_rhs_rule(Parser *p)
6821{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006822 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006825 return NULL;
6826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006827 expr_ty _res = NULL;
6828 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006829 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006831 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006832 return NULL;
6833 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006834 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006835 expr_ty yield_expr_var;
6836 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006837 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006838 )
6839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006840 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 +01006841 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006842 goto done;
6843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006845 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006847 }
6848 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006849 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006850 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006851 return NULL;
6852 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006853 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006854 expr_ty star_expressions_var;
6855 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006856 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006857 )
6858 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006859 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 +01006860 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006861 goto done;
6862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006863 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006864 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006867 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006868 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006869 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006870 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006871}
6872
6873// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6874static expr_ty
6875expressions_rule(Parser *p)
6876{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006877 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006880 return NULL;
6881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006882 expr_ty _res = NULL;
6883 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006884 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6885 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006887 return NULL;
6888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006889 int _start_lineno = p->tokens[_mark]->lineno;
6890 UNUSED(_start_lineno); // Only used by EXTRA macro
6891 int _start_col_offset = p->tokens[_mark]->col_offset;
6892 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006893 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006895 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006896 return NULL;
6897 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006898 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006899 void *_opt_var;
6900 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006901 expr_ty a;
6902 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006903 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006904 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006905 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006906 (b = _loop1_75_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006907 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006908 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006909 )
6910 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006911 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6913 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006915 return NULL;
6916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006917 int _end_lineno = _token->end_lineno;
6918 UNUSED(_end_lineno); // Only used by EXTRA macro
6919 int _end_col_offset = _token->end_col_offset;
6920 UNUSED(_end_col_offset); // Only used by EXTRA macro
6921 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6922 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006923 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006925 return NULL;
6926 }
6927 goto done;
6928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006929 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006930 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006932 }
6933 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006935 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006936 return NULL;
6937 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006938 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006939 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006940 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006941 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006942 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006943 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006944 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006945 )
6946 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006947 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6949 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006951 return NULL;
6952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006953 int _end_lineno = _token->end_lineno;
6954 UNUSED(_end_lineno); // Only used by EXTRA macro
6955 int _end_col_offset = _token->end_col_offset;
6956 UNUSED(_end_col_offset); // Only used by EXTRA macro
6957 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6958 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006959 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006961 return NULL;
6962 }
6963 goto done;
6964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006965 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006966 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006968 }
6969 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006972 return NULL;
6973 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006974 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006975 expr_ty expression_var;
6976 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006977 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006978 )
6979 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006980 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006981 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006982 goto done;
6983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006984 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006985 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006988 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006989 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006990 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006991 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006992}
6993
6994// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6995static expr_ty
6996expression_rule(Parser *p)
6997{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006998 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007001 return NULL;
7002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007003 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007004 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7005 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007006 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007008 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7010 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007012 return NULL;
7013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007014 int _start_lineno = p->tokens[_mark]->lineno;
7015 UNUSED(_start_lineno); // Only used by EXTRA macro
7016 int _start_col_offset = p->tokens[_mark]->col_offset;
7017 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007018 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007020 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007021 return NULL;
7022 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007023 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 +01007024 Token * _keyword;
7025 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007026 expr_ty a;
7027 expr_ty b;
7028 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007029 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007030 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007031 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007032 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007033 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007034 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007035 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007036 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007037 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007038 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007039 )
7040 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007041 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 +01007042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7043 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007044 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007045 return NULL;
7046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007047 int _end_lineno = _token->end_lineno;
7048 UNUSED(_end_lineno); // Only used by EXTRA macro
7049 int _end_col_offset = _token->end_col_offset;
7050 UNUSED(_end_col_offset); // Only used by EXTRA macro
7051 _res = _Py_IfExp ( b , a , c , EXTRA );
7052 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007053 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007055 return NULL;
7056 }
7057 goto done;
7058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007059 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007060 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007062 }
7063 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007065 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007066 return NULL;
7067 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007068 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007069 expr_ty disjunction_var;
7070 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007071 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007072 )
7073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007074 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007075 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007076 goto done;
7077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007078 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007079 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007081 }
7082 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007084 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007085 return NULL;
7086 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007087 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007088 expr_ty lambdef_var;
7089 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007090 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007091 )
7092 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007093 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007094 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007095 goto done;
7096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007097 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007098 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007101 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007102 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007103 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007104 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007105 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007106}
7107
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007108// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007109static expr_ty
7110lambdef_rule(Parser *p)
7111{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007112 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007115 return NULL;
7116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007117 expr_ty _res = NULL;
7118 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007119 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7120 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007122 return NULL;
7123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007124 int _start_lineno = p->tokens[_mark]->lineno;
7125 UNUSED(_start_lineno); // Only used by EXTRA macro
7126 int _start_col_offset = p->tokens[_mark]->col_offset;
7127 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007128 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007131 return NULL;
7132 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007133 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 +01007134 Token * _keyword;
7135 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007136 void *a;
7137 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007138 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007139 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007140 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007141 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007142 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007143 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007145 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007146 )
7147 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007148 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 +01007149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7150 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007152 return NULL;
7153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007154 int _end_lineno = _token->end_lineno;
7155 UNUSED(_end_lineno); // Only used by EXTRA macro
7156 int _end_col_offset = _token->end_col_offset;
7157 UNUSED(_end_col_offset); // Only used by EXTRA macro
7158 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007162 return NULL;
7163 }
7164 goto done;
7165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007167 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7169 }
7170 _res = NULL;
7171 done:
7172 D(p->level--);
7173 return _res;
7174}
7175
7176// lambda_params: invalid_lambda_parameters | lambda_parameters
7177static arguments_ty
7178lambda_params_rule(Parser *p)
7179{
7180 D(p->level++);
7181 if (p->error_indicator) {
7182 D(p->level--);
7183 return NULL;
7184 }
7185 arguments_ty _res = NULL;
7186 int _mark = p->mark;
7187 { // invalid_lambda_parameters
7188 if (p->error_indicator) {
7189 D(p->level--);
7190 return NULL;
7191 }
7192 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7193 void *invalid_lambda_parameters_var;
7194 if (
7195 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7196 )
7197 {
7198 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7199 _res = invalid_lambda_parameters_var;
7200 goto done;
7201 }
7202 p->mark = _mark;
7203 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7205 }
7206 { // lambda_parameters
7207 if (p->error_indicator) {
7208 D(p->level--);
7209 return NULL;
7210 }
7211 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7212 arguments_ty lambda_parameters_var;
7213 if (
7214 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7215 )
7216 {
7217 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7218 _res = lambda_parameters_var;
7219 goto done;
7220 }
7221 p->mark = _mark;
7222 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007225 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007226 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007227 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007228 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007229}
7230
7231// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007232// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7233// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7234// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7235// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007236// | lambda_star_etc
7237static arguments_ty
7238lambda_parameters_rule(Parser *p)
7239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007240 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007243 return NULL;
7244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007245 arguments_ty _res = NULL;
7246 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007247 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007250 return NULL;
7251 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007252 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 +01007253 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007254 asdl_seq * b;
7255 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007256 void *d;
7257 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007258 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007259 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007260 (b = _loop0_76_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007261 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007262 (c = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007263 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007264 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007265 )
7266 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007267 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 +01007268 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7269 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007270 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007272 return NULL;
7273 }
7274 goto done;
7275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007277 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7278 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 +01007279 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007280 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007283 return NULL;
7284 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007285 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 +01007286 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007287 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007288 void *c;
7289 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007290 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007291 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007292 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007293 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007294 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007295 )
7296 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007297 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 +01007298 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7299 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007300 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007302 return NULL;
7303 }
7304 goto done;
7305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007307 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7308 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 +01007309 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007310 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007313 return NULL;
7314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007315 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 -07007316 asdl_seq * a;
7317 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007318 void *c;
7319 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007320 (a = _loop1_79_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007321 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007322 (b = _loop0_80_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007323 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007324 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007325 )
7326 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007327 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 +01007328 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007332 return NULL;
7333 }
7334 goto done;
7335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007336 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007337 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7338 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 +01007339 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007340 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007342 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007343 return NULL;
7344 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007345 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 -07007346 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007347 void *b;
7348 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007349 (a = _loop1_81_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007350 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007351 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007352 )
7353 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007354 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 +01007355 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7356 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007357 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007358 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007359 return NULL;
7360 }
7361 goto done;
7362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007363 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007364 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007366 }
7367 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007370 return NULL;
7371 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007372 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 +01007373 StarEtc* a;
7374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007375 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007376 )
7377 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007378 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 +01007379 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7380 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007381 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007382 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007383 return NULL;
7384 }
7385 goto done;
7386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007387 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007388 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007391 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007392 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007393 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007394 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007395}
7396
Guido van Rossum3941d972020-05-01 09:42:03 -07007397// lambda_slash_no_default:
7398// | lambda_param_no_default+ '/' ','
7399// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007400static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007401lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007402{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007403 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007405 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007406 return NULL;
7407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007408 asdl_seq* _res = NULL;
7409 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007410 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007413 return NULL;
7414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007415 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 +01007416 Token * _literal;
7417 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007418 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007419 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007420 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007421 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007422 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007423 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007424 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007425 )
7426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007427 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 +01007428 _res = a;
7429 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007430 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007431 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007432 return NULL;
7433 }
7434 goto done;
7435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007437 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007439 }
7440 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007443 return NULL;
7444 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007445 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 +01007446 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007447 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007448 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007449 (a = _loop1_83_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007450 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007451 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007452 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007453 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007454 )
7455 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007456 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 +01007457 _res = a;
7458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007461 return NULL;
7462 }
7463 goto done;
7464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007466 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007469 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007470 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007472 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007473}
7474
Guido van Rossum3941d972020-05-01 09:42:03 -07007475// lambda_slash_with_default:
7476// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7477// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007478static SlashWithDefault*
7479lambda_slash_with_default_rule(Parser *p)
7480{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007481 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007484 return NULL;
7485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007486 SlashWithDefault* _res = NULL;
7487 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007488 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007491 return NULL;
7492 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007493 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 +01007494 Token * _literal;
7495 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007496 asdl_seq * a;
7497 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007498 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007499 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007500 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007501 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007502 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007503 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007505 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007506 )
7507 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007508 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 +01007509 _res = _PyPegen_slash_with_default ( p , a , b );
7510 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007511 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007512 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007513 return NULL;
7514 }
7515 goto done;
7516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007517 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007518 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007520 }
7521 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007522 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007523 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007524 return NULL;
7525 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007526 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 +01007527 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007528 asdl_seq * a;
7529 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007530 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007531 (a = _loop0_86_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007532 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007533 (b = _loop1_87_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007534 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007535 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007536 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007537 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007538 )
7539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007540 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 +01007541 _res = _PyPegen_slash_with_default ( p , a , b );
7542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007545 return NULL;
7546 }
7547 goto done;
7548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007550 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007553 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007554 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007555 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007556 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007557}
7558
7559// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007560// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7561// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7562// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007563// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007564static StarEtc*
7565lambda_star_etc_rule(Parser *p)
7566{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007567 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007569 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007570 return NULL;
7571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007572 StarEtc* _res = NULL;
7573 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007574 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007576 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007577 return NULL;
7578 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007579 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 +01007580 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007581 arg_ty a;
7582 asdl_seq * b;
7583 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007584 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007585 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007586 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007587 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007588 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007589 (b = _loop0_88_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007591 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007592 )
7593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007594 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 +01007595 _res = _PyPegen_star_etc ( p , a , b , c );
7596 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007597 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007599 return NULL;
7600 }
7601 goto done;
7602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007603 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007604 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007606 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007607 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007609 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007610 return NULL;
7611 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007612 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 +01007613 Token * _literal;
7614 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007615 asdl_seq * b;
7616 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007617 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007618 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007619 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007620 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007621 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007622 (b = _loop1_89_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007624 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007625 )
7626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007627 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 +01007628 _res = _PyPegen_star_etc ( p , NULL , b , c );
7629 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007630 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007632 return NULL;
7633 }
7634 goto done;
7635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007636 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007637 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007639 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007640 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007641 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007642 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007643 return NULL;
7644 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007645 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 +01007646 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007647 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007648 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007649 )
7650 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007651 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 +01007652 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7653 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007654 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007656 return NULL;
7657 }
7658 goto done;
7659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007660 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007661 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007663 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007664 { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007666 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007667 return NULL;
7668 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007669 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 +03007670 void *invalid_lambda_star_etc_var;
7671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007672 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007673 )
7674 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007675 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 +01007676 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007677 goto done;
7678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007680 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007683 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007684 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007685 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007686 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007687}
7688
Guido van Rossum3941d972020-05-01 09:42:03 -07007689// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007690static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007691lambda_kwds_rule(Parser *p)
7692{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007693 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007694 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007695 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007696 return NULL;
7697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007698 arg_ty _res = NULL;
7699 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007700 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007701 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007702 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007703 return NULL;
7704 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007705 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 +01007706 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007707 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007708 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007709 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007710 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007711 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007712 )
7713 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007714 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 +01007715 _res = a;
7716 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007718 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007719 return NULL;
7720 }
7721 goto done;
7722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007723 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007724 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007727 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007728 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007729 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007730 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007731}
7732
7733// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7734static arg_ty
7735lambda_param_no_default_rule(Parser *p)
7736{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007737 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007739 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007740 return NULL;
7741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007742 arg_ty _res = NULL;
7743 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007744 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007745 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007746 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007747 return NULL;
7748 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007749 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 +01007750 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007751 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007752 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007753 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007754 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007755 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007756 )
7757 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007758 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 +01007759 _res = a;
7760 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007761 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007762 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007763 return NULL;
7764 }
7765 goto done;
7766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007768 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007770 }
7771 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007774 return NULL;
7775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007776 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 -07007777 arg_ty a;
7778 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007779 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007780 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007781 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007782 )
7783 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007784 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 +01007785 _res = a;
7786 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007787 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007788 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007789 return NULL;
7790 }
7791 goto done;
7792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007793 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007794 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007797 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007798 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007799 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007800 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007801}
7802
7803// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7804static NameDefaultPair*
7805lambda_param_with_default_rule(Parser *p)
7806{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007807 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007809 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007810 return NULL;
7811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007812 NameDefaultPair* _res = NULL;
7813 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007814 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007815 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007816 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007817 return NULL;
7818 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007819 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 +01007820 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007821 arg_ty a;
7822 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007823 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007824 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007825 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007826 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007827 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007828 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007829 )
7830 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007831 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 +01007832 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7833 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007834 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007835 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007836 return NULL;
7837 }
7838 goto done;
7839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007840 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007841 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007843 }
7844 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007845 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007846 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007847 return NULL;
7848 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007849 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 -07007850 arg_ty a;
7851 expr_ty c;
7852 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007853 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007854 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007855 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007856 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007857 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007858 )
7859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007860 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 +01007861 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7862 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007864 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007865 return NULL;
7866 }
7867 goto done;
7868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007870 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007873 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007874 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007875 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007876 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007877}
7878
7879// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7880static NameDefaultPair*
7881lambda_param_maybe_default_rule(Parser *p)
7882{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007883 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007884 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007885 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007886 return NULL;
7887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007888 NameDefaultPair* _res = NULL;
7889 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007890 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007893 return NULL;
7894 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007895 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 +01007896 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007897 arg_ty a;
7898 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007899 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007900 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007901 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007902 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007903 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007904 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007905 )
7906 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007907 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 +01007908 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7909 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007910 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007911 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007912 return NULL;
7913 }
7914 goto done;
7915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007916 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007917 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007919 }
7920 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007922 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007923 return NULL;
7924 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007925 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 -07007926 arg_ty a;
7927 void *c;
7928 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007929 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007930 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007931 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007932 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007933 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007934 )
7935 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007936 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 +01007937 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7938 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007939 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007940 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007941 return NULL;
7942 }
7943 goto done;
7944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007945 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007946 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007949 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007950 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007952 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007953}
7954
7955// lambda_param: NAME
7956static arg_ty
7957lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007958{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007959 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007960 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007962 return NULL;
7963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007964 arg_ty _res = NULL;
7965 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007966 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7967 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007968 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007969 return NULL;
7970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007971 int _start_lineno = p->tokens[_mark]->lineno;
7972 UNUSED(_start_lineno); // Only used by EXTRA macro
7973 int _start_col_offset = p->tokens[_mark]->col_offset;
7974 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007975 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007977 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007978 return NULL;
7979 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007980 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007981 expr_ty a;
7982 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007983 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007984 )
7985 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007986 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7988 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007990 return NULL;
7991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007992 int _end_lineno = _token->end_lineno;
7993 UNUSED(_end_lineno); // Only used by EXTRA macro
7994 int _end_col_offset = _token->end_col_offset;
7995 UNUSED(_end_col_offset); // Only used by EXTRA macro
7996 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7997 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007998 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007999 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008000 return NULL;
8001 }
8002 goto done;
8003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008004 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008005 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008008 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008009 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008010 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008011 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008012}
8013
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008014// disjunction: conjunction (('or' conjunction))+ | conjunction
8015static expr_ty
8016disjunction_rule(Parser *p)
8017{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008018 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008021 return NULL;
8022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008023 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008024 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8025 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008026 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008028 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008029 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8030 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008032 return NULL;
8033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008034 int _start_lineno = p->tokens[_mark]->lineno;
8035 UNUSED(_start_lineno); // Only used by EXTRA macro
8036 int _start_col_offset = p->tokens[_mark]->col_offset;
8037 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008038 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008040 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008041 return NULL;
8042 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008043 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008044 expr_ty a;
8045 asdl_seq * b;
8046 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008047 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008048 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008049 (b = _loop1_90_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008050 )
8051 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008052 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 +01008053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8054 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008056 return NULL;
8057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008058 int _end_lineno = _token->end_lineno;
8059 UNUSED(_end_lineno); // Only used by EXTRA macro
8060 int _end_col_offset = _token->end_col_offset;
8061 UNUSED(_end_col_offset); // Only used by EXTRA macro
8062 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8063 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008064 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008065 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008066 return NULL;
8067 }
8068 goto done;
8069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008070 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008071 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008073 }
8074 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008076 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008077 return NULL;
8078 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008079 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008080 expr_ty conjunction_var;
8081 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008082 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008083 )
8084 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008085 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008086 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008087 goto done;
8088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008089 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008090 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008093 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008094 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008095 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008096 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008097 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008098}
8099
8100// conjunction: inversion (('and' inversion))+ | inversion
8101static expr_ty
8102conjunction_rule(Parser *p)
8103{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008104 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008106 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008107 return NULL;
8108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008109 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008110 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8111 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008112 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008114 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008115 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8116 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008118 return NULL;
8119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008120 int _start_lineno = p->tokens[_mark]->lineno;
8121 UNUSED(_start_lineno); // Only used by EXTRA macro
8122 int _start_col_offset = p->tokens[_mark]->col_offset;
8123 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008124 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008125 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008126 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008127 return NULL;
8128 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008129 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008130 expr_ty a;
8131 asdl_seq * b;
8132 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008133 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008134 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008135 (b = _loop1_91_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008136 )
8137 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008138 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 +01008139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8140 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008141 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008142 return NULL;
8143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008144 int _end_lineno = _token->end_lineno;
8145 UNUSED(_end_lineno); // Only used by EXTRA macro
8146 int _end_col_offset = _token->end_col_offset;
8147 UNUSED(_end_col_offset); // Only used by EXTRA macro
8148 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8149 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008150 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008152 return NULL;
8153 }
8154 goto done;
8155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008156 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008157 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008159 }
8160 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008162 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008163 return NULL;
8164 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008165 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008166 expr_ty inversion_var;
8167 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008168 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008169 )
8170 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008171 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008172 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008173 goto done;
8174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008176 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008179 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008180 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008181 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008182 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008183 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008184}
8185
8186// inversion: 'not' inversion | comparison
8187static expr_ty
8188inversion_rule(Parser *p)
8189{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008190 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008192 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008193 return NULL;
8194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008195 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008196 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8197 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008198 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008200 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008201 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008204 return NULL;
8205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008206 int _start_lineno = p->tokens[_mark]->lineno;
8207 UNUSED(_start_lineno); // Only used by EXTRA macro
8208 int _start_col_offset = p->tokens[_mark]->col_offset;
8209 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008210 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008213 return NULL;
8214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008215 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008216 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008217 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008218 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008219 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008220 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008221 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008222 )
8223 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008224 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8226 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008228 return NULL;
8229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008230 int _end_lineno = _token->end_lineno;
8231 UNUSED(_end_lineno); // Only used by EXTRA macro
8232 int _end_col_offset = _token->end_col_offset;
8233 UNUSED(_end_col_offset); // Only used by EXTRA macro
8234 _res = _Py_UnaryOp ( Not , a , EXTRA );
8235 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008236 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008238 return NULL;
8239 }
8240 goto done;
8241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008243 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008245 }
8246 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008249 return NULL;
8250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008251 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008252 expr_ty comparison_var;
8253 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008254 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008255 )
8256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008257 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008258 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008259 goto done;
8260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008262 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008265 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008266 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008267 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008268 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008269 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008270}
8271
8272// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8273static expr_ty
8274comparison_rule(Parser *p)
8275{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008276 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008278 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008279 return NULL;
8280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008281 expr_ty _res = NULL;
8282 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008283 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8284 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008285 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008286 return NULL;
8287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008288 int _start_lineno = p->tokens[_mark]->lineno;
8289 UNUSED(_start_lineno); // Only used by EXTRA macro
8290 int _start_col_offset = p->tokens[_mark]->col_offset;
8291 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008292 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008294 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008295 return NULL;
8296 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008297 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 +01008298 expr_ty a;
8299 asdl_seq * b;
8300 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008301 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008302 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008303 (b = _loop1_92_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008304 )
8305 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008306 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 +01008307 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8308 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008310 return NULL;
8311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008312 int _end_lineno = _token->end_lineno;
8313 UNUSED(_end_lineno); // Only used by EXTRA macro
8314 int _end_col_offset = _token->end_col_offset;
8315 UNUSED(_end_col_offset); // Only used by EXTRA macro
8316 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8317 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008318 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008320 return NULL;
8321 }
8322 goto done;
8323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008324 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008325 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008327 }
8328 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008329 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008330 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008331 return NULL;
8332 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008333 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008334 expr_ty bitwise_or_var;
8335 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008336 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008337 )
8338 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008339 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008340 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008341 goto done;
8342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008343 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008344 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008347 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008348 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008349 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008350 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008351}
8352
8353// compare_op_bitwise_or_pair:
8354// | eq_bitwise_or
8355// | noteq_bitwise_or
8356// | lte_bitwise_or
8357// | lt_bitwise_or
8358// | gte_bitwise_or
8359// | gt_bitwise_or
8360// | notin_bitwise_or
8361// | in_bitwise_or
8362// | isnot_bitwise_or
8363// | is_bitwise_or
8364static CmpopExprPair*
8365compare_op_bitwise_or_pair_rule(Parser *p)
8366{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008367 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008370 return NULL;
8371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008372 CmpopExprPair* _res = NULL;
8373 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008374 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008375 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008376 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008377 return NULL;
8378 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008379 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 +01008380 CmpopExprPair* eq_bitwise_or_var;
8381 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008382 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008383 )
8384 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008385 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 +01008386 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008387 goto done;
8388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008389 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008390 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008392 }
8393 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008396 return NULL;
8397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008398 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 +01008399 CmpopExprPair* noteq_bitwise_or_var;
8400 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008401 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008402 )
8403 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008404 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 +01008405 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008406 goto done;
8407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008408 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008409 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008411 }
8412 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008414 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008415 return NULL;
8416 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008417 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 +01008418 CmpopExprPair* lte_bitwise_or_var;
8419 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008420 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008421 )
8422 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008423 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 +01008424 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008425 goto done;
8426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008428 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008430 }
8431 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008434 return NULL;
8435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008436 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 +01008437 CmpopExprPair* lt_bitwise_or_var;
8438 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008439 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008440 )
8441 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008442 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 +01008443 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008444 goto done;
8445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008446 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008447 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008449 }
8450 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008451 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008452 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008453 return NULL;
8454 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008455 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 +01008456 CmpopExprPair* gte_bitwise_or_var;
8457 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008458 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008459 )
8460 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008461 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 +01008462 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008463 goto done;
8464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008466 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008468 }
8469 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008471 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008472 return NULL;
8473 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008474 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 +01008475 CmpopExprPair* gt_bitwise_or_var;
8476 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008477 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008478 )
8479 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008480 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 +01008481 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008482 goto done;
8483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008484 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008485 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008487 }
8488 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008491 return NULL;
8492 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008493 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 +01008494 CmpopExprPair* notin_bitwise_or_var;
8495 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008496 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008497 )
8498 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008499 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 +01008500 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008501 goto done;
8502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008503 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008504 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008506 }
8507 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008509 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008510 return NULL;
8511 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008512 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 +01008513 CmpopExprPair* in_bitwise_or_var;
8514 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008515 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008516 )
8517 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008518 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 +01008519 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008520 goto done;
8521 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008522 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008523 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008525 }
8526 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008527 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008528 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008529 return NULL;
8530 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008531 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 +01008532 CmpopExprPair* isnot_bitwise_or_var;
8533 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008534 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008535 )
8536 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008537 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 +01008538 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008539 goto done;
8540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008541 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008542 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008544 }
8545 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008547 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008548 return NULL;
8549 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008550 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 +01008551 CmpopExprPair* is_bitwise_or_var;
8552 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008553 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008554 )
8555 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008556 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 +01008557 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008558 goto done;
8559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008560 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008561 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008564 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008565 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008566 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008567 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008568}
8569
8570// eq_bitwise_or: '==' bitwise_or
8571static CmpopExprPair*
8572eq_bitwise_or_rule(Parser *p)
8573{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008574 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008576 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008577 return NULL;
8578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008579 CmpopExprPair* _res = NULL;
8580 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008581 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008583 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008584 return NULL;
8585 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008586 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 +01008587 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008588 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008589 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008590 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008591 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008592 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008593 )
8594 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008595 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 +01008596 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8597 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008600 return NULL;
8601 }
8602 goto done;
8603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008604 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008605 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008608 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008609 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008610 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008611 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008612}
8613
Pablo Galindo2b74c832020-04-27 18:02:07 +01008614// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008615static CmpopExprPair*
8616noteq_bitwise_or_rule(Parser *p)
8617{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008618 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008621 return NULL;
8622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008623 CmpopExprPair* _res = NULL;
8624 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008625 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008626 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008627 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008628 return NULL;
8629 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008630 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 +03008631 void *_tmp_93_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008632 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008633 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008634 (_tmp_93_var = _tmp_93_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008635 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008636 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008637 )
8638 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008639 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 +01008640 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8641 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008642 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008644 return NULL;
8645 }
8646 goto done;
8647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008648 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008649 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008652 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008653 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008654 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008655 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008656}
8657
8658// lte_bitwise_or: '<=' bitwise_or
8659static CmpopExprPair*
8660lte_bitwise_or_rule(Parser *p)
8661{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008662 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008663 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008665 return NULL;
8666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008667 CmpopExprPair* _res = NULL;
8668 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008669 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008672 return NULL;
8673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008674 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 +01008675 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008676 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008677 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008678 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008679 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008680 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008681 )
8682 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008683 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 +01008684 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8685 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008686 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008687 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008688 return NULL;
8689 }
8690 goto done;
8691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008692 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008693 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008696 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008697 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008698 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008699 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008700}
8701
8702// lt_bitwise_or: '<' bitwise_or
8703static CmpopExprPair*
8704lt_bitwise_or_rule(Parser *p)
8705{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008706 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008709 return NULL;
8710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008711 CmpopExprPair* _res = NULL;
8712 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008713 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008716 return NULL;
8717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008718 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 +01008719 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008720 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008721 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008722 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008723 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008724 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008725 )
8726 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008727 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 +01008728 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8729 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008730 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008731 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008732 return NULL;
8733 }
8734 goto done;
8735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008736 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008737 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008740 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008741 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008742 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008743 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008744}
8745
8746// gte_bitwise_or: '>=' bitwise_or
8747static CmpopExprPair*
8748gte_bitwise_or_rule(Parser *p)
8749{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008750 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008753 return NULL;
8754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008755 CmpopExprPair* _res = NULL;
8756 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008757 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008760 return NULL;
8761 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008762 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 +01008763 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008764 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008765 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008766 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008767 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008768 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008769 )
8770 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008771 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 +01008772 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8773 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008774 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008776 return NULL;
8777 }
8778 goto done;
8779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008780 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008781 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008784 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008785 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008786 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008787 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008788}
8789
8790// gt_bitwise_or: '>' bitwise_or
8791static CmpopExprPair*
8792gt_bitwise_or_rule(Parser *p)
8793{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008794 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008796 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008797 return NULL;
8798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008799 CmpopExprPair* _res = NULL;
8800 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008801 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008802 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008803 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008804 return NULL;
8805 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008806 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 +01008807 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008808 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008809 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008810 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008811 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008812 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008813 )
8814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008815 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 +01008816 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8817 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008818 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008820 return NULL;
8821 }
8822 goto done;
8823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008825 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008828 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008829 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008830 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008831 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008832}
8833
8834// notin_bitwise_or: 'not' 'in' bitwise_or
8835static CmpopExprPair*
8836notin_bitwise_or_rule(Parser *p)
8837{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008838 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008841 return NULL;
8842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008843 CmpopExprPair* _res = NULL;
8844 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008845 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008848 return NULL;
8849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008850 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 +01008851 Token * _keyword;
8852 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008853 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008854 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008855 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008856 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008857 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008858 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008859 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008860 )
8861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008862 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 +01008863 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008867 return NULL;
8868 }
8869 goto done;
8870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008872 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008875 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008877 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008878 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008879}
8880
8881// in_bitwise_or: 'in' bitwise_or
8882static CmpopExprPair*
8883in_bitwise_or_rule(Parser *p)
8884{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008885 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008887 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008888 return NULL;
8889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008890 CmpopExprPair* _res = NULL;
8891 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008892 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008894 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008895 return NULL;
8896 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008897 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 +01008898 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008899 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008900 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008901 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008902 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008903 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008904 )
8905 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008906 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 +01008907 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8908 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008909 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008911 return NULL;
8912 }
8913 goto done;
8914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008916 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008919 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008920 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008921 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008922 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008923}
8924
8925// isnot_bitwise_or: 'is' 'not' bitwise_or
8926static CmpopExprPair*
8927isnot_bitwise_or_rule(Parser *p)
8928{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008929 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008932 return NULL;
8933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008934 CmpopExprPair* _res = NULL;
8935 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008936 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008939 return NULL;
8940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008941 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 +01008942 Token * _keyword;
8943 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008944 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008945 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008946 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008947 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008948 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008949 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008950 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008951 )
8952 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008953 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 +01008954 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8955 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008958 return NULL;
8959 }
8960 goto done;
8961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008962 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008963 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008966 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008967 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008968 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008969 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008970}
8971
8972// is_bitwise_or: 'is' bitwise_or
8973static CmpopExprPair*
8974is_bitwise_or_rule(Parser *p)
8975{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008976 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008979 return NULL;
8980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008981 CmpopExprPair* _res = NULL;
8982 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008983 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008984 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008985 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008986 return NULL;
8987 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008988 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 +01008989 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008990 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008991 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008992 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008994 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008995 )
8996 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008997 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 +01008998 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8999 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009000 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009001 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009002 return NULL;
9003 }
9004 goto done;
9005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009006 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009007 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009010 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009011 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009012 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009013 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009014}
9015
9016// Left-recursive
9017// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9018static expr_ty bitwise_or_raw(Parser *);
9019static expr_ty
9020bitwise_or_rule(Parser *p)
9021{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009022 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009023 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009024 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9025 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009026 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009028 int _mark = p->mark;
9029 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009030 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009031 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009032 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009033 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009034 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009036 p->mark = _mark;
9037 void *_raw = bitwise_or_raw(p);
9038 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009039 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009040 _resmark = p->mark;
9041 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009043 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009045 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009046}
9047static expr_ty
9048bitwise_or_raw(Parser *p)
9049{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009050 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009051 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009053 return NULL;
9054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009055 expr_ty _res = NULL;
9056 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009057 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9058 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009060 return NULL;
9061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009062 int _start_lineno = p->tokens[_mark]->lineno;
9063 UNUSED(_start_lineno); // Only used by EXTRA macro
9064 int _start_col_offset = p->tokens[_mark]->col_offset;
9065 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009066 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009069 return NULL;
9070 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009071 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 +01009072 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009073 expr_ty a;
9074 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009075 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009076 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009077 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009078 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009079 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009080 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009081 )
9082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009083 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 +01009084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9085 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009086 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009087 return NULL;
9088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009089 int _end_lineno = _token->end_lineno;
9090 UNUSED(_end_lineno); // Only used by EXTRA macro
9091 int _end_col_offset = _token->end_col_offset;
9092 UNUSED(_end_col_offset); // Only used by EXTRA macro
9093 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9094 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009095 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009096 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009097 return NULL;
9098 }
9099 goto done;
9100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009101 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009102 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009104 }
9105 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009108 return NULL;
9109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009110 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009111 expr_ty bitwise_xor_var;
9112 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009113 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009114 )
9115 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009116 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 +01009117 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009118 goto done;
9119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009120 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009121 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009124 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009125 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009126 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009127 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009128}
9129
9130// Left-recursive
9131// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9132static expr_ty bitwise_xor_raw(Parser *);
9133static expr_ty
9134bitwise_xor_rule(Parser *p)
9135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009136 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009137 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009138 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9139 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009140 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009142 int _mark = p->mark;
9143 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009144 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009145 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009146 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009147 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009148 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009150 p->mark = _mark;
9151 void *_raw = bitwise_xor_raw(p);
9152 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009153 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009154 _resmark = p->mark;
9155 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009157 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009159 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009160}
9161static expr_ty
9162bitwise_xor_raw(Parser *p)
9163{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009164 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009166 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009167 return NULL;
9168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009169 expr_ty _res = NULL;
9170 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009171 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9172 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009173 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009174 return NULL;
9175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009176 int _start_lineno = p->tokens[_mark]->lineno;
9177 UNUSED(_start_lineno); // Only used by EXTRA macro
9178 int _start_col_offset = p->tokens[_mark]->col_offset;
9179 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009180 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009182 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009183 return NULL;
9184 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009185 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 +01009186 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009187 expr_ty a;
9188 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009190 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009191 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009192 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009193 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009194 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009195 )
9196 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009197 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 +01009198 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9199 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009200 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009201 return NULL;
9202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009203 int _end_lineno = _token->end_lineno;
9204 UNUSED(_end_lineno); // Only used by EXTRA macro
9205 int _end_col_offset = _token->end_col_offset;
9206 UNUSED(_end_col_offset); // Only used by EXTRA macro
9207 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9208 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009209 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009211 return NULL;
9212 }
9213 goto done;
9214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009215 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009216 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009218 }
9219 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009221 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009222 return NULL;
9223 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009224 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009225 expr_ty bitwise_and_var;
9226 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009227 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009228 )
9229 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009230 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 +01009231 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009232 goto done;
9233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009235 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009238 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009239 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009240 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009241 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009242}
9243
9244// Left-recursive
9245// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9246static expr_ty bitwise_and_raw(Parser *);
9247static expr_ty
9248bitwise_and_rule(Parser *p)
9249{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009250 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009251 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009252 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9253 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009254 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009256 int _mark = p->mark;
9257 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009258 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009259 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009260 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009262 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009264 p->mark = _mark;
9265 void *_raw = bitwise_and_raw(p);
9266 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009267 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009268 _resmark = p->mark;
9269 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009271 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009272 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009273 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009274}
9275static expr_ty
9276bitwise_and_raw(Parser *p)
9277{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009278 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009281 return NULL;
9282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009283 expr_ty _res = NULL;
9284 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009285 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9286 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009288 return NULL;
9289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009290 int _start_lineno = p->tokens[_mark]->lineno;
9291 UNUSED(_start_lineno); // Only used by EXTRA macro
9292 int _start_col_offset = p->tokens[_mark]->col_offset;
9293 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009294 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009296 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009297 return NULL;
9298 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009299 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 +01009300 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009301 expr_ty a;
9302 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009303 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009304 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009305 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009306 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009307 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009308 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009309 )
9310 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009311 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 +01009312 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9313 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009315 return NULL;
9316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009317 int _end_lineno = _token->end_lineno;
9318 UNUSED(_end_lineno); // Only used by EXTRA macro
9319 int _end_col_offset = _token->end_col_offset;
9320 UNUSED(_end_col_offset); // Only used by EXTRA macro
9321 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9322 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009325 return NULL;
9326 }
9327 goto done;
9328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009329 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009330 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009332 }
9333 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009335 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009336 return NULL;
9337 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009338 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009339 expr_ty shift_expr_var;
9340 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009341 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009342 )
9343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009344 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 +01009345 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009346 goto done;
9347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009348 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009349 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009352 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009353 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009354 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009355 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009356}
9357
9358// Left-recursive
9359// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9360static expr_ty shift_expr_raw(Parser *);
9361static expr_ty
9362shift_expr_rule(Parser *p)
9363{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009364 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009365 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009366 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9367 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009368 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009370 int _mark = p->mark;
9371 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009372 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009373 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009374 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009375 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009376 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009378 p->mark = _mark;
9379 void *_raw = shift_expr_raw(p);
9380 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009381 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009382 _resmark = p->mark;
9383 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009385 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009386 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009387 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009388}
9389static expr_ty
9390shift_expr_raw(Parser *p)
9391{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009392 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009395 return NULL;
9396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009397 expr_ty _res = NULL;
9398 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009399 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009402 return NULL;
9403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009404 int _start_lineno = p->tokens[_mark]->lineno;
9405 UNUSED(_start_lineno); // Only used by EXTRA macro
9406 int _start_col_offset = p->tokens[_mark]->col_offset;
9407 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009408 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009411 return NULL;
9412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009413 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 +01009414 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009415 expr_ty a;
9416 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009417 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009418 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009419 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009420 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009422 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009423 )
9424 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009425 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 +01009426 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9427 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009429 return NULL;
9430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009431 int _end_lineno = _token->end_lineno;
9432 UNUSED(_end_lineno); // Only used by EXTRA macro
9433 int _end_col_offset = _token->end_col_offset;
9434 UNUSED(_end_col_offset); // Only used by EXTRA macro
9435 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9436 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009437 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009438 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009439 return NULL;
9440 }
9441 goto done;
9442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009443 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009444 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009446 }
9447 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009450 return NULL;
9451 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009452 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 +01009453 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009454 expr_ty a;
9455 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009456 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009457 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009459 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009460 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009461 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009462 )
9463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009464 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 +01009465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9466 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009468 return NULL;
9469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009470 int _end_lineno = _token->end_lineno;
9471 UNUSED(_end_lineno); // Only used by EXTRA macro
9472 int _end_col_offset = _token->end_col_offset;
9473 UNUSED(_end_col_offset); // Only used by EXTRA macro
9474 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009476 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009478 return NULL;
9479 }
9480 goto done;
9481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009483 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009485 }
9486 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009489 return NULL;
9490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009491 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009492 expr_ty sum_var;
9493 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009494 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009495 )
9496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009497 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009498 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009499 goto done;
9500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009502 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009505 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009506 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009507 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009508 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009509}
9510
9511// Left-recursive
9512// sum: sum '+' term | sum '-' term | term
9513static expr_ty sum_raw(Parser *);
9514static expr_ty
9515sum_rule(Parser *p)
9516{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009517 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009518 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009519 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9520 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009521 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009523 int _mark = p->mark;
9524 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009525 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009526 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009527 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009528 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009529 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009531 p->mark = _mark;
9532 void *_raw = sum_raw(p);
9533 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009534 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009535 _resmark = p->mark;
9536 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009538 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009539 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009540 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009541}
9542static expr_ty
9543sum_raw(Parser *p)
9544{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009545 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009547 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009548 return NULL;
9549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009550 expr_ty _res = NULL;
9551 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009555 return NULL;
9556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009557 int _start_lineno = p->tokens[_mark]->lineno;
9558 UNUSED(_start_lineno); // Only used by EXTRA macro
9559 int _start_col_offset = p->tokens[_mark]->col_offset;
9560 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009561 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009564 return NULL;
9565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009566 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009567 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009568 expr_ty a;
9569 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009570 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009571 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009572 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009573 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009575 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009576 )
9577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009578 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009579 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9580 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009581 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009582 return NULL;
9583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009584 int _end_lineno = _token->end_lineno;
9585 UNUSED(_end_lineno); // Only used by EXTRA macro
9586 int _end_col_offset = _token->end_col_offset;
9587 UNUSED(_end_col_offset); // Only used by EXTRA macro
9588 _res = _Py_BinOp ( a , Add , b , EXTRA );
9589 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009590 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009592 return NULL;
9593 }
9594 goto done;
9595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009597 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009599 }
9600 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009603 return NULL;
9604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009605 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009606 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009607 expr_ty a;
9608 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009609 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009610 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009611 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009612 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009614 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009615 )
9616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009617 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009618 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9619 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009621 return NULL;
9622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009623 int _end_lineno = _token->end_lineno;
9624 UNUSED(_end_lineno); // Only used by EXTRA macro
9625 int _end_col_offset = _token->end_col_offset;
9626 UNUSED(_end_col_offset); // Only used by EXTRA macro
9627 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9628 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009631 return NULL;
9632 }
9633 goto done;
9634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009636 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009638 }
9639 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009642 return NULL;
9643 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009644 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009645 expr_ty term_var;
9646 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009647 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009648 )
9649 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009650 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009651 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009652 goto done;
9653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009654 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009655 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009658 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009659 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009660 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009661 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009662}
9663
9664// Left-recursive
9665// term:
9666// | term '*' factor
9667// | term '/' factor
9668// | term '//' factor
9669// | term '%' factor
9670// | term '@' factor
9671// | factor
9672static expr_ty term_raw(Parser *);
9673static expr_ty
9674term_rule(Parser *p)
9675{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009676 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009677 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009678 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9679 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009680 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009682 int _mark = p->mark;
9683 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009684 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009685 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009686 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009687 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009688 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009690 p->mark = _mark;
9691 void *_raw = term_raw(p);
9692 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009693 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009694 _resmark = p->mark;
9695 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009697 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009698 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009699 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009700}
9701static expr_ty
9702term_raw(Parser *p)
9703{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009704 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009707 return NULL;
9708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009709 expr_ty _res = NULL;
9710 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009711 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9712 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009714 return NULL;
9715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009716 int _start_lineno = p->tokens[_mark]->lineno;
9717 UNUSED(_start_lineno); // Only used by EXTRA macro
9718 int _start_col_offset = p->tokens[_mark]->col_offset;
9719 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009720 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009723 return NULL;
9724 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009725 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009726 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009727 expr_ty a;
9728 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009729 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009730 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009731 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009732 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009734 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009735 )
9736 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009737 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009738 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9739 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009741 return NULL;
9742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009743 int _end_lineno = _token->end_lineno;
9744 UNUSED(_end_lineno); // Only used by EXTRA macro
9745 int _end_col_offset = _token->end_col_offset;
9746 UNUSED(_end_col_offset); // Only used by EXTRA macro
9747 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9748 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009749 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009751 return NULL;
9752 }
9753 goto done;
9754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009755 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009756 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009758 }
9759 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009761 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009762 return NULL;
9763 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009764 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009765 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009766 expr_ty a;
9767 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009768 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009769 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009770 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009771 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009772 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009773 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009774 )
9775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009776 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9778 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009780 return NULL;
9781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009782 int _end_lineno = _token->end_lineno;
9783 UNUSED(_end_lineno); // Only used by EXTRA macro
9784 int _end_col_offset = _token->end_col_offset;
9785 UNUSED(_end_col_offset); // Only used by EXTRA macro
9786 _res = _Py_BinOp ( a , Div , b , EXTRA );
9787 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009788 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009790 return NULL;
9791 }
9792 goto done;
9793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009794 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009795 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009797 }
9798 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009801 return NULL;
9802 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009803 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009804 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009805 expr_ty a;
9806 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009807 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009808 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009809 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009810 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009812 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009813 )
9814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009815 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9817 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009819 return NULL;
9820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009821 int _end_lineno = _token->end_lineno;
9822 UNUSED(_end_lineno); // Only used by EXTRA macro
9823 int _end_col_offset = _token->end_col_offset;
9824 UNUSED(_end_col_offset); // Only used by EXTRA macro
9825 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009829 return NULL;
9830 }
9831 goto done;
9832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009834 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009836 }
9837 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009840 return NULL;
9841 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009842 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009843 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009844 expr_ty a;
9845 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009846 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009847 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009848 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009849 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009850 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009851 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009852 )
9853 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009854 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009855 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9856 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009857 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009858 return NULL;
9859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009860 int _end_lineno = _token->end_lineno;
9861 UNUSED(_end_lineno); // Only used by EXTRA macro
9862 int _end_col_offset = _token->end_col_offset;
9863 UNUSED(_end_col_offset); // Only used by EXTRA macro
9864 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9865 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009866 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009868 return NULL;
9869 }
9870 goto done;
9871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009872 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009873 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009875 }
9876 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009878 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009879 return NULL;
9880 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009881 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009882 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009883 expr_ty a;
9884 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009885 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009886 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009887 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009888 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009890 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009891 )
9892 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009893 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009894 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9895 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009897 return NULL;
9898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009899 int _end_lineno = _token->end_lineno;
9900 UNUSED(_end_lineno); // Only used by EXTRA macro
9901 int _end_col_offset = _token->end_col_offset;
9902 UNUSED(_end_col_offset); // Only used by EXTRA macro
9903 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9904 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009905 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009906 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009907 return NULL;
9908 }
9909 goto done;
9910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009911 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009912 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009914 }
9915 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009916 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009917 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009918 return NULL;
9919 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009920 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009921 expr_ty factor_var;
9922 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009923 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009924 )
9925 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009926 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009927 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009928 goto done;
9929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009930 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009931 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009934 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009935 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009936 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009937 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009938}
9939
9940// factor: '+' factor | '-' factor | '~' factor | power
9941static expr_ty
9942factor_rule(Parser *p)
9943{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009944 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009947 return NULL;
9948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009949 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009950 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009952 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009954 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009955 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009958 return NULL;
9959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009960 int _start_lineno = p->tokens[_mark]->lineno;
9961 UNUSED(_start_lineno); // Only used by EXTRA macro
9962 int _start_col_offset = p->tokens[_mark]->col_offset;
9963 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009964 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009967 return NULL;
9968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009969 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009970 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009971 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009972 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009973 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009974 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009975 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009976 )
9977 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009978 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009979 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9980 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009981 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009982 return NULL;
9983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009984 int _end_lineno = _token->end_lineno;
9985 UNUSED(_end_lineno); // Only used by EXTRA macro
9986 int _end_col_offset = _token->end_col_offset;
9987 UNUSED(_end_col_offset); // Only used by EXTRA macro
9988 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9989 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009990 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009991 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009992 return NULL;
9993 }
9994 goto done;
9995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009996 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009997 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009999 }
10000 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010002 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010003 return NULL;
10004 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010005 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010006 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010007 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010008 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010009 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010010 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010011 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010012 )
10013 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010014 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010015 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10016 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010017 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010018 return NULL;
10019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010020 int _end_lineno = _token->end_lineno;
10021 UNUSED(_end_lineno); // Only used by EXTRA macro
10022 int _end_col_offset = _token->end_col_offset;
10023 UNUSED(_end_col_offset); // Only used by EXTRA macro
10024 _res = _Py_UnaryOp ( USub , a , EXTRA );
10025 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010026 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010028 return NULL;
10029 }
10030 goto done;
10031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010032 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010033 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010035 }
10036 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010037 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010038 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010039 return NULL;
10040 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010041 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010042 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010043 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010044 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010045 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010046 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010047 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010048 )
10049 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010050 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10052 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010054 return NULL;
10055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010056 int _end_lineno = _token->end_lineno;
10057 UNUSED(_end_lineno); // Only used by EXTRA macro
10058 int _end_col_offset = _token->end_col_offset;
10059 UNUSED(_end_col_offset); // Only used by EXTRA macro
10060 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10061 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010064 return NULL;
10065 }
10066 goto done;
10067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010069 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010071 }
10072 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010075 return NULL;
10076 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010077 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010078 expr_ty power_var;
10079 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010080 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010081 )
10082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010083 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010084 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010085 goto done;
10086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010087 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010088 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010091 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010092 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010093 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010095 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010096}
10097
10098// power: await_primary '**' factor | await_primary
10099static expr_ty
10100power_rule(Parser *p)
10101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010102 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010105 return NULL;
10106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010107 expr_ty _res = NULL;
10108 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010109 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10110 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010112 return NULL;
10113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010114 int _start_lineno = p->tokens[_mark]->lineno;
10115 UNUSED(_start_lineno); // Only used by EXTRA macro
10116 int _start_col_offset = p->tokens[_mark]->col_offset;
10117 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010118 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010121 return NULL;
10122 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010123 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010124 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010125 expr_ty a;
10126 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010127 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010128 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010129 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010130 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010131 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010132 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010133 )
10134 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010135 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 +010010136 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10137 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010139 return NULL;
10140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010141 int _end_lineno = _token->end_lineno;
10142 UNUSED(_end_lineno); // Only used by EXTRA macro
10143 int _end_col_offset = _token->end_col_offset;
10144 UNUSED(_end_col_offset); // Only used by EXTRA macro
10145 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10146 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010147 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010148 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010149 return NULL;
10150 }
10151 goto done;
10152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010153 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010154 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010156 }
10157 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010158 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010159 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010160 return NULL;
10161 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010162 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010163 expr_ty await_primary_var;
10164 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010165 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010166 )
10167 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010168 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010169 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010170 goto done;
10171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010172 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010173 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010176 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010177 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010178 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010179 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010180}
10181
10182// await_primary: AWAIT primary | primary
10183static expr_ty
10184await_primary_rule(Parser *p)
10185{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010186 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010188 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010189 return NULL;
10190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010191 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010192 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10193 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010194 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010196 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010197 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10198 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010200 return NULL;
10201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010202 int _start_lineno = p->tokens[_mark]->lineno;
10203 UNUSED(_start_lineno); // Only used by EXTRA macro
10204 int _start_col_offset = p->tokens[_mark]->col_offset;
10205 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010206 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010208 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010209 return NULL;
10210 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010211 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010212 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010213 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010214 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010215 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010216 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010217 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010218 )
10219 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010220 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 +010010221 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10222 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010223 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010224 return NULL;
10225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010226 int _end_lineno = _token->end_lineno;
10227 UNUSED(_end_lineno); // Only used by EXTRA macro
10228 int _end_col_offset = _token->end_col_offset;
10229 UNUSED(_end_col_offset); // Only used by EXTRA macro
10230 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10231 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010232 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010234 return NULL;
10235 }
10236 goto done;
10237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010238 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010239 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010241 }
10242 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010245 return NULL;
10246 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010247 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010248 expr_ty primary_var;
10249 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010250 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010251 )
10252 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010253 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010254 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010255 goto done;
10256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010257 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010258 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010261 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010262 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010263 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010264 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010265 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010266}
10267
10268// Left-recursive
10269// primary:
10270// | primary '.' NAME
10271// | primary genexp
10272// | primary '(' arguments? ')'
10273// | primary '[' slices ']'
10274// | atom
10275static expr_ty primary_raw(Parser *);
10276static expr_ty
10277primary_rule(Parser *p)
10278{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010279 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010280 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010281 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10282 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010283 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010285 int _mark = p->mark;
10286 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010287 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010288 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010289 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010290 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010291 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010293 p->mark = _mark;
10294 void *_raw = primary_raw(p);
10295 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010296 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010297 _resmark = p->mark;
10298 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010300 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010301 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010302 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010303}
10304static expr_ty
10305primary_raw(Parser *p)
10306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010307 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010310 return NULL;
10311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010312 expr_ty _res = NULL;
10313 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010314 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010317 return NULL;
10318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010319 int _start_lineno = p->tokens[_mark]->lineno;
10320 UNUSED(_start_lineno); // Only used by EXTRA macro
10321 int _start_col_offset = p->tokens[_mark]->col_offset;
10322 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010323 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010325 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010326 return NULL;
10327 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010328 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010329 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010330 expr_ty a;
10331 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010333 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010334 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010335 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010336 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010337 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010338 )
10339 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010340 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010341 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10342 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010343 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010344 return NULL;
10345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010346 int _end_lineno = _token->end_lineno;
10347 UNUSED(_end_lineno); // Only used by EXTRA macro
10348 int _end_col_offset = _token->end_col_offset;
10349 UNUSED(_end_col_offset); // Only used by EXTRA macro
10350 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10351 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010352 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010354 return NULL;
10355 }
10356 goto done;
10357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010358 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010359 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010361 }
10362 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010363 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010364 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010365 return NULL;
10366 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010367 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010368 expr_ty a;
10369 expr_ty b;
10370 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010371 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010372 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010373 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010374 )
10375 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010376 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10378 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010379 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010380 return NULL;
10381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010382 int _end_lineno = _token->end_lineno;
10383 UNUSED(_end_lineno); // Only used by EXTRA macro
10384 int _end_col_offset = _token->end_col_offset;
10385 UNUSED(_end_col_offset); // Only used by EXTRA macro
10386 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10387 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010388 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010389 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010390 return NULL;
10391 }
10392 goto done;
10393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010394 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010395 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010397 }
10398 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010399 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010400 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010401 return NULL;
10402 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010403 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010404 Token * _literal;
10405 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010406 expr_ty a;
10407 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010408 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010409 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010410 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010411 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010412 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010413 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010414 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010415 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010416 )
10417 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010418 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010419 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10420 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010421 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010422 return NULL;
10423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010424 int _end_lineno = _token->end_lineno;
10425 UNUSED(_end_lineno); // Only used by EXTRA macro
10426 int _end_col_offset = _token->end_col_offset;
10427 UNUSED(_end_col_offset); // Only used by EXTRA macro
10428 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10429 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010430 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010431 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010432 return NULL;
10433 }
10434 goto done;
10435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010437 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010439 }
10440 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010443 return NULL;
10444 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010445 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010446 Token * _literal;
10447 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010448 expr_ty a;
10449 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010450 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010451 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010453 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010454 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010455 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010456 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010457 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010458 )
10459 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010460 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010461 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10462 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010463 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010464 return NULL;
10465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010466 int _end_lineno = _token->end_lineno;
10467 UNUSED(_end_lineno); // Only used by EXTRA macro
10468 int _end_col_offset = _token->end_col_offset;
10469 UNUSED(_end_col_offset); // Only used by EXTRA macro
10470 _res = _Py_Subscript ( a , b , Load , EXTRA );
10471 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010472 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010474 return NULL;
10475 }
10476 goto done;
10477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010478 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010479 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010481 }
10482 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010484 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010485 return NULL;
10486 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010487 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010488 expr_ty atom_var;
10489 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010490 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010491 )
10492 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010493 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010494 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010495 goto done;
10496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010497 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010498 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010501 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010502 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010503 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010504 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010505}
10506
10507// slices: slice !',' | ','.slice+ ','?
10508static expr_ty
10509slices_rule(Parser *p)
10510{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010511 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010513 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010514 return NULL;
10515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010516 expr_ty _res = NULL;
10517 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010521 return NULL;
10522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010523 int _start_lineno = p->tokens[_mark]->lineno;
10524 UNUSED(_start_lineno); // Only used by EXTRA macro
10525 int _start_col_offset = p->tokens[_mark]->col_offset;
10526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010527 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010530 return NULL;
10531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010532 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010533 expr_ty a;
10534 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010535 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010536 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010537 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010538 )
10539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010540 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010541 _res = a;
10542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010545 return NULL;
10546 }
10547 goto done;
10548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010550 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010552 }
10553 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010556 return NULL;
10557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010558 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010559 void *_opt_var;
10560 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010561 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010562 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010563 (a = _gather_94_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010564 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010565 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010566 )
10567 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010568 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010569 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10570 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010571 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010572 return NULL;
10573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010574 int _end_lineno = _token->end_lineno;
10575 UNUSED(_end_lineno); // Only used by EXTRA macro
10576 int _end_col_offset = _token->end_col_offset;
10577 UNUSED(_end_col_offset); // Only used by EXTRA macro
10578 _res = _Py_Tuple ( a , Load , EXTRA );
10579 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010580 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010581 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010582 return NULL;
10583 }
10584 goto done;
10585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010586 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010587 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010590 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010591 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010592 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010593 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010594}
10595
10596// slice: expression? ':' expression? [':' expression?] | expression
10597static expr_ty
10598slice_rule(Parser *p)
10599{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010600 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010603 return NULL;
10604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010605 expr_ty _res = NULL;
10606 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010607 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10608 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010609 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010610 return NULL;
10611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010612 int _start_lineno = p->tokens[_mark]->lineno;
10613 UNUSED(_start_lineno); // Only used by EXTRA macro
10614 int _start_col_offset = p->tokens[_mark]->col_offset;
10615 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010616 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010619 return NULL;
10620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010621 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010622 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010623 void *a;
10624 void *b;
10625 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010626 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010627 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010629 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010630 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010631 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010632 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010633 (c = _tmp_96_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010634 )
10635 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010636 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 +010010637 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10638 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010640 return NULL;
10641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010642 int _end_lineno = _token->end_lineno;
10643 UNUSED(_end_lineno); // Only used by EXTRA macro
10644 int _end_col_offset = _token->end_col_offset;
10645 UNUSED(_end_col_offset); // Only used by EXTRA macro
10646 _res = _Py_Slice ( a , b , c , EXTRA );
10647 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010648 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010650 return NULL;
10651 }
10652 goto done;
10653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010654 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010655 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010657 }
10658 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010659 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010660 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010661 return NULL;
10662 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010663 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010664 expr_ty a;
10665 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010666 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010667 )
10668 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010669 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010670 _res = a;
10671 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010672 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010674 return NULL;
10675 }
10676 goto done;
10677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010678 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010679 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010682 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010683 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010684 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010685 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010686}
10687
10688// atom:
10689// | NAME
10690// | 'True'
10691// | 'False'
10692// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010693// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010694// | &STRING strings
10695// | NUMBER
10696// | &'(' (tuple | group | genexp)
10697// | &'[' (list | listcomp)
10698// | &'{' (dict | set | dictcomp | setcomp)
10699// | '...'
10700static expr_ty
10701atom_rule(Parser *p)
10702{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010703 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010704 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010706 return NULL;
10707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010708 expr_ty _res = NULL;
10709 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010710 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10711 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010713 return NULL;
10714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010715 int _start_lineno = p->tokens[_mark]->lineno;
10716 UNUSED(_start_lineno); // Only used by EXTRA macro
10717 int _start_col_offset = p->tokens[_mark]->col_offset;
10718 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010719 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010722 return NULL;
10723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010724 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010725 expr_ty name_var;
10726 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010727 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010728 )
10729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010730 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010731 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010732 goto done;
10733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010735 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010737 }
10738 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010740 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010741 return NULL;
10742 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010743 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010744 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010745 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010746 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010747 )
10748 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010749 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10751 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010753 return NULL;
10754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010755 int _end_lineno = _token->end_lineno;
10756 UNUSED(_end_lineno); // Only used by EXTRA macro
10757 int _end_col_offset = _token->end_col_offset;
10758 UNUSED(_end_col_offset); // Only used by EXTRA macro
10759 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10760 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010761 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010763 return NULL;
10764 }
10765 goto done;
10766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010768 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010770 }
10771 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010774 return NULL;
10775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010776 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010777 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010778 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010779 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010780 )
10781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010782 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10784 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010786 return NULL;
10787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010788 int _end_lineno = _token->end_lineno;
10789 UNUSED(_end_lineno); // Only used by EXTRA macro
10790 int _end_col_offset = _token->end_col_offset;
10791 UNUSED(_end_col_offset); // Only used by EXTRA macro
10792 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10793 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010796 return NULL;
10797 }
10798 goto done;
10799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010801 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010803 }
10804 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010807 return NULL;
10808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010809 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010810 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010811 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010812 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010813 )
10814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010815 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10817 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010819 return NULL;
10820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010821 int _end_lineno = _token->end_lineno;
10822 UNUSED(_end_lineno); // Only used by EXTRA macro
10823 int _end_col_offset = _token->end_col_offset;
10824 UNUSED(_end_col_offset); // Only used by EXTRA macro
10825 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010829 return NULL;
10830 }
10831 goto done;
10832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010834 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010836 }
Pablo Galindo37824972020-06-11 19:29:13 +010010837 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010840 return NULL;
10841 }
Pablo Galindo37824972020-06-11 19:29:13 +010010842 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010843 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010844 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010845 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010846 )
10847 {
Pablo Galindo37824972020-06-11 19:29:13 +010010848 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010849 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10850 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010851 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010853 return NULL;
10854 }
10855 goto done;
10856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010857 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010858 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010860 }
10861 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010862 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010863 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010864 return NULL;
10865 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010866 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010867 expr_ty strings_var;
10868 if (
10869 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10870 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010871 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010872 )
10873 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010874 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010875 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010876 goto done;
10877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010878 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010879 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010881 }
10882 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010884 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010885 return NULL;
10886 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010887 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010888 expr_ty number_var;
10889 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010890 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010891 )
10892 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010893 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010894 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010895 goto done;
10896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010897 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010898 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010900 }
10901 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010903 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010904 return NULL;
10905 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010906 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010907 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010908 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010909 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010910 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010911 (_tmp_97_var = _tmp_97_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010912 )
10913 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010914 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 +030010915 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010916 goto done;
10917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010918 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010919 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010921 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010922 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010925 return NULL;
10926 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010927 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010928 void *_tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010929 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010930 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010931 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010932 (_tmp_98_var = _tmp_98_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010933 )
10934 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010935 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010936 _res = _tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010937 goto done;
10938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010939 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010940 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010942 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010943 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010946 return NULL;
10947 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010948 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 +030010949 void *_tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010950 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010952 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010953 (_tmp_99_var = _tmp_99_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010954 )
10955 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010956 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 +030010957 _res = _tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010958 goto done;
10959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010960 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010961 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010963 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010964 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010967 return NULL;
10968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010969 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010970 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010971 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010972 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010973 )
10974 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010975 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10977 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010979 return NULL;
10980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010981 int _end_lineno = _token->end_lineno;
10982 UNUSED(_end_lineno); // Only used by EXTRA macro
10983 int _end_col_offset = _token->end_col_offset;
10984 UNUSED(_end_col_offset); // Only used by EXTRA macro
10985 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10986 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010987 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010988 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010989 return NULL;
10990 }
10991 goto done;
10992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010993 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010994 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010997 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010998 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010999 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011000 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011001}
11002
11003// strings: STRING+
11004static expr_ty
11005strings_rule(Parser *p)
11006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011007 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011010 return NULL;
11011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011012 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011013 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011015 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011017 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011018 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011020 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011021 return NULL;
11022 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011023 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011024 asdl_seq * a;
11025 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011026 (a = _loop1_100_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011027 )
11028 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011029 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011030 _res = _PyPegen_concatenate_strings ( p , a );
11031 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011032 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011034 return NULL;
11035 }
11036 goto done;
11037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011039 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011042 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011043 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011044 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011045 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011046 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011047}
11048
11049// list: '[' star_named_expressions? ']'
11050static expr_ty
11051list_rule(Parser *p)
11052{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011053 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011056 return NULL;
11057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011058 expr_ty _res = NULL;
11059 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011060 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11061 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011062 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011063 return NULL;
11064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011065 int _start_lineno = p->tokens[_mark]->lineno;
11066 UNUSED(_start_lineno); // Only used by EXTRA macro
11067 int _start_col_offset = p->tokens[_mark]->col_offset;
11068 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011069 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011072 return NULL;
11073 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011074 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011075 Token * _literal;
11076 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011077 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011078 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011079 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011080 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011081 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011082 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011083 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011084 )
11085 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011086 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 +010011087 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11088 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011090 return NULL;
11091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011092 int _end_lineno = _token->end_lineno;
11093 UNUSED(_end_lineno); // Only used by EXTRA macro
11094 int _end_col_offset = _token->end_col_offset;
11095 UNUSED(_end_col_offset); // Only used by EXTRA macro
11096 _res = _Py_List ( a , Load , EXTRA );
11097 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011098 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011099 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011100 return NULL;
11101 }
11102 goto done;
11103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011104 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011105 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011108 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011109 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011110 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011111 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011112}
11113
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011114// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011115static expr_ty
11116listcomp_rule(Parser *p)
11117{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011118 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011121 return NULL;
11122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011123 expr_ty _res = NULL;
11124 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011125 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11126 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011128 return NULL;
11129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011130 int _start_lineno = p->tokens[_mark]->lineno;
11131 UNUSED(_start_lineno); // Only used by EXTRA macro
11132 int _start_col_offset = p->tokens[_mark]->col_offset;
11133 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011134 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011137 return NULL;
11138 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011139 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11140 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011141 Token * _literal;
11142 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011143 expr_ty a;
11144 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011145 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011146 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011147 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011148 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011149 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011150 (_cut_var = 1)
11151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011152 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011153 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011154 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011155 )
11156 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011157 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 +010011158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11159 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011161 return NULL;
11162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011163 int _end_lineno = _token->end_lineno;
11164 UNUSED(_end_lineno); // Only used by EXTRA macro
11165 int _end_col_offset = _token->end_col_offset;
11166 UNUSED(_end_col_offset); // Only used by EXTRA macro
11167 _res = _Py_ListComp ( a , b , EXTRA );
11168 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011169 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011171 return NULL;
11172 }
11173 goto done;
11174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011176 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11178 if (_cut_var) {
11179 D(p->level--);
11180 return NULL;
11181 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011182 }
11183 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011186 return NULL;
11187 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011188 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011189 void *invalid_comprehension_var;
11190 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011191 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011192 )
11193 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011194 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011195 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011196 goto done;
11197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011198 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011199 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011202 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011203 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011204 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011205 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011206}
11207
11208// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11209static expr_ty
11210tuple_rule(Parser *p)
11211{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011212 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011215 return NULL;
11216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011217 expr_ty _res = NULL;
11218 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011219 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11220 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011222 return NULL;
11223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011224 int _start_lineno = p->tokens[_mark]->lineno;
11225 UNUSED(_start_lineno); // Only used by EXTRA macro
11226 int _start_col_offset = p->tokens[_mark]->col_offset;
11227 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011228 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011229 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011230 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011231 return NULL;
11232 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011233 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011234 Token * _literal;
11235 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011236 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011237 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011238 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011239 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011240 (a = _tmp_101_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011241 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011242 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011243 )
11244 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011245 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 +010011246 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11247 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011249 return NULL;
11250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011251 int _end_lineno = _token->end_lineno;
11252 UNUSED(_end_lineno); // Only used by EXTRA macro
11253 int _end_col_offset = _token->end_col_offset;
11254 UNUSED(_end_col_offset); // Only used by EXTRA macro
11255 _res = _Py_Tuple ( a , Load , EXTRA );
11256 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011257 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011258 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011259 return NULL;
11260 }
11261 goto done;
11262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011263 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011264 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011267 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011268 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011269 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011270 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011271}
11272
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011273// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011274static expr_ty
11275group_rule(Parser *p)
11276{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011277 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011278 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011280 return NULL;
11281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011282 expr_ty _res = NULL;
11283 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011284 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011286 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011287 return NULL;
11288 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011289 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 +010011290 Token * _literal;
11291 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011292 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011293 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011294 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011295 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011296 (a = _tmp_102_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011298 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011299 )
11300 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011301 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 +010011302 _res = a;
11303 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011304 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011306 return NULL;
11307 }
11308 goto done;
11309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011310 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011311 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011313 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011314 { // invalid_group
11315 if (p->error_indicator) {
11316 D(p->level--);
11317 return NULL;
11318 }
11319 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11320 void *invalid_group_var;
11321 if (
11322 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11323 )
11324 {
11325 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11326 _res = invalid_group_var;
11327 goto done;
11328 }
11329 p->mark = _mark;
11330 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011333 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011334 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011335 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011336 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011337}
11338
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011339// genexp: '(' expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011340static expr_ty
11341genexp_rule(Parser *p)
11342{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011343 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011346 return NULL;
11347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011348 expr_ty _res = NULL;
11349 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11351 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011353 return NULL;
11354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011355 int _start_lineno = p->tokens[_mark]->lineno;
11356 UNUSED(_start_lineno); // Only used by EXTRA macro
11357 int _start_col_offset = p->tokens[_mark]->col_offset;
11358 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011359 { // '(' expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011362 return NULL;
11363 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011364 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11365 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011366 Token * _literal;
11367 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011368 expr_ty a;
11369 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011370 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011371 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011372 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011373 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011374 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011375 (_cut_var = 1)
11376 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011377 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011378 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011379 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011380 )
11381 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011382 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 +010011383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11384 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011386 return NULL;
11387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011388 int _end_lineno = _token->end_lineno;
11389 UNUSED(_end_lineno); // Only used by EXTRA macro
11390 int _end_col_offset = _token->end_col_offset;
11391 UNUSED(_end_col_offset); // Only used by EXTRA macro
11392 _res = _Py_GeneratorExp ( a , b , EXTRA );
11393 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011394 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011396 return NULL;
11397 }
11398 goto done;
11399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011400 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011401 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11403 if (_cut_var) {
11404 D(p->level--);
11405 return NULL;
11406 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011407 }
11408 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011411 return NULL;
11412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011413 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011414 void *invalid_comprehension_var;
11415 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011416 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011417 )
11418 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011419 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011420 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011421 goto done;
11422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011423 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011424 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011427 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011428 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011429 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011430 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011431}
11432
11433// set: '{' expressions_list '}'
11434static expr_ty
11435set_rule(Parser *p)
11436{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011437 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011439 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011440 return NULL;
11441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011442 expr_ty _res = NULL;
11443 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011444 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11445 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011447 return NULL;
11448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011449 int _start_lineno = p->tokens[_mark]->lineno;
11450 UNUSED(_start_lineno); // Only used by EXTRA macro
11451 int _start_col_offset = p->tokens[_mark]->col_offset;
11452 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011453 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011456 return NULL;
11457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011458 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011459 Token * _literal;
11460 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011461 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011462 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011463 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011465 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011466 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011467 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011468 )
11469 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011470 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11472 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011474 return NULL;
11475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011476 int _end_lineno = _token->end_lineno;
11477 UNUSED(_end_lineno); // Only used by EXTRA macro
11478 int _end_col_offset = _token->end_col_offset;
11479 UNUSED(_end_col_offset); // Only used by EXTRA macro
11480 _res = _Py_Set ( a , EXTRA );
11481 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011482 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011484 return NULL;
11485 }
11486 goto done;
11487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011489 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011496}
11497
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011498// setcomp: '{' expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011499static expr_ty
11500setcomp_rule(Parser *p)
11501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011505 return NULL;
11506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011507 expr_ty _res = NULL;
11508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011512 return NULL;
11513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011514 int _start_lineno = p->tokens[_mark]->lineno;
11515 UNUSED(_start_lineno); // Only used by EXTRA macro
11516 int _start_col_offset = p->tokens[_mark]->col_offset;
11517 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011518 { // '{' expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011521 return NULL;
11522 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011523 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11524 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011525 Token * _literal;
11526 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011527 expr_ty a;
11528 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011529 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011530 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011531 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011532 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011533 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011534 (_cut_var = 1)
11535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011536 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011537 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011538 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011539 )
11540 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011541 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 +010011542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11543 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011545 return NULL;
11546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011547 int _end_lineno = _token->end_lineno;
11548 UNUSED(_end_lineno); // Only used by EXTRA macro
11549 int _end_col_offset = _token->end_col_offset;
11550 UNUSED(_end_col_offset); // Only used by EXTRA macro
11551 _res = _Py_SetComp ( a , b , EXTRA );
11552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011555 return NULL;
11556 }
11557 goto done;
11558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011560 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11562 if (_cut_var) {
11563 D(p->level--);
11564 return NULL;
11565 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011566 }
11567 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011570 return NULL;
11571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011572 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011573 void *invalid_comprehension_var;
11574 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011575 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011576 )
11577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011578 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011579 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011580 goto done;
11581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011582 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011583 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011586 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011587 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011588 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011589 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011590}
11591
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011592// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011593static expr_ty
11594dict_rule(Parser *p)
11595{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011596 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011599 return NULL;
11600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011601 expr_ty _res = NULL;
11602 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011603 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11604 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011605 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011606 return NULL;
11607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011608 int _start_lineno = p->tokens[_mark]->lineno;
11609 UNUSED(_start_lineno); // Only used by EXTRA macro
11610 int _start_col_offset = p->tokens[_mark]->col_offset;
11611 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011612 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011614 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011615 return NULL;
11616 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011617 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011618 Token * _literal;
11619 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011620 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011621 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011622 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011623 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011624 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011625 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011626 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011627 )
11628 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011629 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 +010011630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11631 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011633 return NULL;
11634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011635 int _end_lineno = _token->end_lineno;
11636 UNUSED(_end_lineno); // Only used by EXTRA macro
11637 int _end_col_offset = _token->end_col_offset;
11638 UNUSED(_end_col_offset); // Only used by EXTRA macro
11639 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11640 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011643 return NULL;
11644 }
11645 goto done;
11646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011648 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011651 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011652 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011653 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011654 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011655}
11656
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011657// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011658static expr_ty
11659dictcomp_rule(Parser *p)
11660{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011661 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011663 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011664 return NULL;
11665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011666 expr_ty _res = NULL;
11667 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011668 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011671 return NULL;
11672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011673 int _start_lineno = p->tokens[_mark]->lineno;
11674 UNUSED(_start_lineno); // Only used by EXTRA macro
11675 int _start_col_offset = p->tokens[_mark]->col_offset;
11676 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011677 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011678 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011679 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011680 return NULL;
11681 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011682 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 +010011683 Token * _literal;
11684 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011685 KeyValuePair* a;
11686 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011687 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011688 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011690 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011691 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011692 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011693 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011694 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011695 )
11696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011697 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 +010011698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11699 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011701 return NULL;
11702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011703 int _end_lineno = _token->end_lineno;
11704 UNUSED(_end_lineno); // Only used by EXTRA macro
11705 int _end_col_offset = _token->end_col_offset;
11706 UNUSED(_end_col_offset); // Only used by EXTRA macro
11707 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11708 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011711 return NULL;
11712 }
11713 goto done;
11714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011716 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011718 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011719 { // invalid_dict_comprehension
11720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011721 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011722 return NULL;
11723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011724 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 -070011725 void *invalid_dict_comprehension_var;
11726 if (
11727 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11728 )
11729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011730 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 -070011731 _res = invalid_dict_comprehension_var;
11732 goto done;
11733 }
11734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011735 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011742}
11743
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011744// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011745static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011746double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011751 return NULL;
11752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011753 asdl_seq* _res = NULL;
11754 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011755 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011758 return NULL;
11759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011760 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 +010011761 void *_opt_var;
11762 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011763 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011764 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011765 (a = _gather_103_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011766 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011767 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011768 )
11769 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011770 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 +010011771 _res = a;
11772 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011773 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011774 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011775 return NULL;
11776 }
11777 goto done;
11778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011780 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011783 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011784 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011785 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011786 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011787}
11788
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011789// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011790static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011791double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011792{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011793 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011796 return NULL;
11797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011798 KeyValuePair* _res = NULL;
11799 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011800 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011803 return NULL;
11804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011805 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011806 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011807 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011808 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011809 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011810 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011811 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011812 )
11813 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011814 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 +010011815 _res = _PyPegen_key_value_pair ( p , NULL , a );
11816 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011817 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011819 return NULL;
11820 }
11821 goto done;
11822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011823 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011824 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011826 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011827 { // kvpair
11828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011829 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011830 return NULL;
11831 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011832 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 -070011833 KeyValuePair* kvpair_var;
11834 if (
11835 (kvpair_var = kvpair_rule(p)) // kvpair
11836 )
11837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011838 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 -070011839 _res = kvpair_var;
11840 goto done;
11841 }
11842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011843 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011845 }
11846 _res = NULL;
11847 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011848 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011849 return _res;
11850}
11851
11852// kvpair: expression ':' expression
11853static KeyValuePair*
11854kvpair_rule(Parser *p)
11855{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011856 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011858 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011859 return NULL;
11860 }
11861 KeyValuePair* _res = NULL;
11862 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011863 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011864 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011865 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011866 return NULL;
11867 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011868 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011869 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011870 expr_ty a;
11871 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011872 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011873 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011874 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011875 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011876 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011877 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011878 )
11879 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011880 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011881 _res = _PyPegen_key_value_pair ( p , a , b );
11882 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011883 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011885 return NULL;
11886 }
11887 goto done;
11888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011889 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011890 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011893 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011894 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011895 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011896 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011897}
11898
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011899// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011900static asdl_seq*
11901for_if_clauses_rule(Parser *p)
11902{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011903 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011906 return NULL;
11907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011908 asdl_seq* _res = NULL;
11909 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011910 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011912 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011913 return NULL;
11914 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011915 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 +030011916 asdl_seq * _loop1_105_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011917 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011918 (_loop1_105_var = _loop1_105_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011919 )
11920 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011921 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 +030011922 _res = _loop1_105_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011923 goto done;
11924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011925 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011926 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011929 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011930 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011931 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011932 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011933}
11934
11935// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011936// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11937// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11938// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011939static comprehension_ty
11940for_if_clause_rule(Parser *p)
11941{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011942 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011944 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011945 return NULL;
11946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011947 comprehension_ty _res = NULL;
11948 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011949 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011951 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011952 return NULL;
11953 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011954 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11955 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011956 Token * _keyword;
11957 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011958 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011959 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011960 expr_ty b;
11961 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011962 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011963 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011964 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011965 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011966 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011967 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011969 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011970 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011971 (_cut_var = 1)
11972 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011973 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011974 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011975 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011976 )
11977 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011978 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 +010011979 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11980 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011982 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011983 return NULL;
11984 }
11985 goto done;
11986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011988 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11990 if (_cut_var) {
11991 D(p->level--);
11992 return NULL;
11993 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011994 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011995 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011998 return NULL;
11999 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012000 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12001 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012002 Token * _keyword;
12003 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012004 expr_ty a;
12005 expr_ty b;
12006 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012007 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012008 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012010 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012011 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012012 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012013 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012014 (_cut_var = 1)
12015 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012016 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012017 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012018 (c = _loop0_107_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012019 )
12020 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012021 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 +010012022 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12023 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012024 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012026 return NULL;
12027 }
12028 goto done;
12029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012030 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012031 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12033 if (_cut_var) {
12034 D(p->level--);
12035 return NULL;
12036 }
12037 }
12038 { // invalid_for_target
12039 if (p->error_indicator) {
12040 D(p->level--);
12041 return NULL;
12042 }
12043 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12044 void *invalid_for_target_var;
12045 if (
12046 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12047 )
12048 {
12049 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12050 _res = invalid_for_target_var;
12051 goto done;
12052 }
12053 p->mark = _mark;
12054 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012057 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012058 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012059 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012060 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012061}
12062
12063// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12064static expr_ty
12065yield_expr_rule(Parser *p)
12066{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012067 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012068 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012070 return NULL;
12071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012072 expr_ty _res = NULL;
12073 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012074 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12075 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012077 return NULL;
12078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012079 int _start_lineno = p->tokens[_mark]->lineno;
12080 UNUSED(_start_lineno); // Only used by EXTRA macro
12081 int _start_col_offset = p->tokens[_mark]->col_offset;
12082 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012083 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012086 return NULL;
12087 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012088 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 +010012089 Token * _keyword;
12090 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012091 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012092 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012093 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012094 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012095 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012096 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012097 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012098 )
12099 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012100 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 +010012101 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12102 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012103 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012104 return NULL;
12105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012106 int _end_lineno = _token->end_lineno;
12107 UNUSED(_end_lineno); // Only used by EXTRA macro
12108 int _end_col_offset = _token->end_col_offset;
12109 UNUSED(_end_col_offset); // Only used by EXTRA macro
12110 _res = _Py_YieldFrom ( a , EXTRA );
12111 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012112 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012114 return NULL;
12115 }
12116 goto done;
12117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012118 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012119 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012121 }
12122 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012125 return NULL;
12126 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012127 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 +010012128 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012129 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012130 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012131 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012132 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012133 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012134 )
12135 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012136 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 +010012137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12138 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012140 return NULL;
12141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012142 int _end_lineno = _token->end_lineno;
12143 UNUSED(_end_lineno); // Only used by EXTRA macro
12144 int _end_col_offset = _token->end_col_offset;
12145 UNUSED(_end_col_offset); // Only used by EXTRA macro
12146 _res = _Py_Yield ( a , EXTRA );
12147 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012148 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012150 return NULL;
12151 }
12152 goto done;
12153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012154 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012155 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012158 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012159 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012160 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012161 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012162}
12163
12164// arguments: args ','? &')' | incorrect_arguments
12165static expr_ty
12166arguments_rule(Parser *p)
12167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012168 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012171 return NULL;
12172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012173 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012174 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12175 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012176 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012178 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012179 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012182 return NULL;
12183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012184 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012185 void *_opt_var;
12186 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012187 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012188 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012189 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012190 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012191 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012192 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012193 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012194 )
12195 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012196 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012197 _res = a;
12198 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012199 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012200 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012201 return NULL;
12202 }
12203 goto done;
12204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012205 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012206 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012208 }
12209 { // incorrect_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012211 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012212 return NULL;
12213 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012214 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012215 void *incorrect_arguments_var;
12216 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012217 (incorrect_arguments_var = incorrect_arguments_rule(p)) // incorrect_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012218 )
12219 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012220 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012221 _res = incorrect_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012222 goto done;
12223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012224 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012225 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012228 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012229 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012230 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012231 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012232 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012233}
12234
12235// args: starred_expression [',' args] | kwargs | named_expression [',' args]
12236static expr_ty
12237args_rule(Parser *p)
12238{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012239 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012240 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012241 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012242 return NULL;
12243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012244 expr_ty _res = NULL;
12245 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012246 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12247 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012249 return NULL;
12250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012251 int _start_lineno = p->tokens[_mark]->lineno;
12252 UNUSED(_start_lineno); // Only used by EXTRA macro
12253 int _start_col_offset = p->tokens[_mark]->col_offset;
12254 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012255 { // starred_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012258 return NULL;
12259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012260 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012261 expr_ty a;
12262 void *b;
12263 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012264 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012265 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012266 (b = _tmp_108_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012267 )
12268 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012269 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 +010012270 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12271 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012272 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012273 return NULL;
12274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012275 int _end_lineno = _token->end_lineno;
12276 UNUSED(_end_lineno); // Only used by EXTRA macro
12277 int _end_col_offset = _token->end_col_offset;
12278 UNUSED(_end_col_offset); // Only used by EXTRA macro
12279 _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 );
12280 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012281 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012283 return NULL;
12284 }
12285 goto done;
12286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012287 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012288 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012290 }
12291 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012294 return NULL;
12295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012296 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012297 asdl_seq* a;
12298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012299 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012300 )
12301 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012302 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012303 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12304 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012306 return NULL;
12307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012308 int _end_lineno = _token->end_lineno;
12309 UNUSED(_end_lineno); // Only used by EXTRA macro
12310 int _end_col_offset = _token->end_col_offset;
12311 UNUSED(_end_col_offset); // Only used by EXTRA macro
12312 _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 );
12313 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012314 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012315 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012316 return NULL;
12317 }
12318 goto done;
12319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012320 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012321 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012323 }
12324 { // named_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012327 return NULL;
12328 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012329 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012330 expr_ty a;
12331 void *b;
12332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012333 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012334 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012335 (b = _tmp_109_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012336 )
12337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012338 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 +010012339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12340 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012342 return NULL;
12343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012344 int _end_lineno = _token->end_lineno;
12345 UNUSED(_end_lineno); // Only used by EXTRA macro
12346 int _end_col_offset = _token->end_col_offset;
12347 UNUSED(_end_col_offset); // Only used by EXTRA macro
12348 _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 );
12349 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012350 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012351 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012352 return NULL;
12353 }
12354 goto done;
12355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012356 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012357 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012360 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012361 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012362 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012363 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012364}
12365
12366// kwargs:
12367// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12368// | ','.kwarg_or_starred+
12369// | ','.kwarg_or_double_starred+
12370static asdl_seq*
12371kwargs_rule(Parser *p)
12372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012373 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012376 return NULL;
12377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012378 asdl_seq* _res = NULL;
12379 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012380 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012381 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012382 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012383 return NULL;
12384 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012385 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 +010012386 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012387 asdl_seq * a;
12388 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012389 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012390 (a = _gather_110_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012391 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012392 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012393 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012394 (b = _gather_112_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012395 )
12396 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012397 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 +010012398 _res = _PyPegen_join_sequences ( p , a , b );
12399 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012402 return NULL;
12403 }
12404 goto done;
12405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012406 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012407 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012409 }
12410 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012413 return NULL;
12414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012415 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012416 asdl_seq * _gather_114_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012417 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012418 (_gather_114_var = _gather_114_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012419 )
12420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012421 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 +030012422 _res = _gather_114_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012423 goto done;
12424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012426 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012428 }
12429 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012432 return NULL;
12433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012434 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 +030012435 asdl_seq * _gather_116_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012436 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012437 (_gather_116_var = _gather_116_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012438 )
12439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012440 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 +030012441 _res = _gather_116_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012442 goto done;
12443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012444 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012445 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012448 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012449 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012450 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012451 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012452}
12453
12454// starred_expression: '*' expression
12455static expr_ty
12456starred_expression_rule(Parser *p)
12457{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012458 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012461 return NULL;
12462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012463 expr_ty _res = NULL;
12464 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012465 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12466 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012468 return NULL;
12469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012470 int _start_lineno = p->tokens[_mark]->lineno;
12471 UNUSED(_start_lineno); // Only used by EXTRA macro
12472 int _start_col_offset = p->tokens[_mark]->col_offset;
12473 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012474 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012476 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012477 return NULL;
12478 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012479 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012480 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012481 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012482 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012483 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012484 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012485 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012486 )
12487 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012488 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12490 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012491 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012492 return NULL;
12493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012494 int _end_lineno = _token->end_lineno;
12495 UNUSED(_end_lineno); // Only used by EXTRA macro
12496 int _end_col_offset = _token->end_col_offset;
12497 UNUSED(_end_col_offset); // Only used by EXTRA macro
12498 _res = _Py_Starred ( a , Load , EXTRA );
12499 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012500 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012502 return NULL;
12503 }
12504 goto done;
12505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012506 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012507 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012510 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012511 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012512 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012513 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012514}
12515
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012516// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012517static KeywordOrStarred*
12518kwarg_or_starred_rule(Parser *p)
12519{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012520 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012523 return NULL;
12524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012525 KeywordOrStarred* _res = NULL;
12526 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012527 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12528 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012529 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012530 return NULL;
12531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012532 int _start_lineno = p->tokens[_mark]->lineno;
12533 UNUSED(_start_lineno); // Only used by EXTRA macro
12534 int _start_col_offset = p->tokens[_mark]->col_offset;
12535 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012536 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012538 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012539 return NULL;
12540 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012541 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 +010012542 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012543 expr_ty a;
12544 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012545 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012546 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012547 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012548 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012549 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012550 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012551 )
12552 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012553 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 +010012554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12555 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012557 return NULL;
12558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012559 int _end_lineno = _token->end_lineno;
12560 UNUSED(_end_lineno); // Only used by EXTRA macro
12561 int _end_col_offset = _token->end_col_offset;
12562 UNUSED(_end_col_offset); // Only used by EXTRA macro
12563 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012567 return NULL;
12568 }
12569 goto done;
12570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012572 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012574 }
12575 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012578 return NULL;
12579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012580 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 +010012581 expr_ty a;
12582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012583 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012584 )
12585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012586 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 +010012587 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12588 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012589 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012591 return NULL;
12592 }
12593 goto done;
12594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012595 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012596 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012598 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012599 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012600 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012601 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012602 return NULL;
12603 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012604 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 +030012605 void *invalid_kwarg_var;
12606 if (
12607 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12608 )
12609 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012610 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 +010012611 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012612 goto done;
12613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012614 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012615 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012618 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012619 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012620 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012621 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012622}
12623
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012624// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012625static KeywordOrStarred*
12626kwarg_or_double_starred_rule(Parser *p)
12627{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012628 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012629 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012631 return NULL;
12632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012633 KeywordOrStarred* _res = NULL;
12634 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012635 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12636 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012637 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012638 return NULL;
12639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012640 int _start_lineno = p->tokens[_mark]->lineno;
12641 UNUSED(_start_lineno); // Only used by EXTRA macro
12642 int _start_col_offset = p->tokens[_mark]->col_offset;
12643 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012644 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012646 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012647 return NULL;
12648 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012649 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 +010012650 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012651 expr_ty a;
12652 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012653 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012654 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012655 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012656 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012657 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012658 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012659 )
12660 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012661 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 +010012662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12663 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012665 return NULL;
12666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012667 int _end_lineno = _token->end_lineno;
12668 UNUSED(_end_lineno); // Only used by EXTRA macro
12669 int _end_col_offset = _token->end_col_offset;
12670 UNUSED(_end_col_offset); // Only used by EXTRA macro
12671 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12672 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012673 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012675 return NULL;
12676 }
12677 goto done;
12678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012680 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012682 }
12683 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012685 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012686 return NULL;
12687 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012688 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 +010012689 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012690 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012691 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012692 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012693 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012694 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012695 )
12696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012697 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 +010012698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12699 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012701 return NULL;
12702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012703 int _end_lineno = _token->end_lineno;
12704 UNUSED(_end_lineno); // Only used by EXTRA macro
12705 int _end_col_offset = _token->end_col_offset;
12706 UNUSED(_end_col_offset); // Only used by EXTRA macro
12707 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12708 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012711 return NULL;
12712 }
12713 goto done;
12714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012716 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012718 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012719 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012722 return NULL;
12723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012724 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 +030012725 void *invalid_kwarg_var;
12726 if (
12727 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12728 )
12729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012730 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 +010012731 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012732 goto done;
12733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012735 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012742}
12743
12744// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12745static expr_ty
12746star_targets_rule(Parser *p)
12747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012751 return NULL;
12752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012753 expr_ty _res = NULL;
12754 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012755 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12756 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012758 return NULL;
12759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012760 int _start_lineno = p->tokens[_mark]->lineno;
12761 UNUSED(_start_lineno); // Only used by EXTRA macro
12762 int _start_col_offset = p->tokens[_mark]->col_offset;
12763 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012764 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012766 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012767 return NULL;
12768 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012769 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012770 expr_ty a;
12771 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012772 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012773 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012774 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012775 )
12776 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012777 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 +010012778 _res = a;
12779 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012780 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012782 return NULL;
12783 }
12784 goto done;
12785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012786 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012787 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012789 }
12790 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012793 return NULL;
12794 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012795 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 +010012796 void *_opt_var;
12797 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012798 expr_ty a;
12799 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012800 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012801 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012802 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012803 (b = _loop0_118_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012804 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012805 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012806 )
12807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012808 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 +010012809 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12810 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012812 return NULL;
12813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012814 int _end_lineno = _token->end_lineno;
12815 UNUSED(_end_lineno); // Only used by EXTRA macro
12816 int _end_col_offset = _token->end_col_offset;
12817 UNUSED(_end_col_offset); // Only used by EXTRA macro
12818 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12819 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012820 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012822 return NULL;
12823 }
12824 goto done;
12825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012826 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012827 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012830 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012831 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012832 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012833 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012834}
12835
12836// star_targets_seq: ','.star_target+ ','?
12837static asdl_seq*
12838star_targets_seq_rule(Parser *p)
12839{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012840 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012843 return NULL;
12844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012845 asdl_seq* _res = NULL;
12846 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012847 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012849 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012850 return NULL;
12851 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012852 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 +010012853 void *_opt_var;
12854 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012855 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012856 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012857 (a = _gather_119_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012858 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012859 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012860 )
12861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012862 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 +010012863 _res = a;
12864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012867 return NULL;
12868 }
12869 goto done;
12870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012872 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012875 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012877 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012878 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012879}
12880
12881// star_target:
12882// | '*' (!'*' star_target)
12883// | t_primary '.' NAME !t_lookahead
12884// | t_primary '[' slices ']' !t_lookahead
12885// | star_atom
12886static expr_ty
12887star_target_rule(Parser *p)
12888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012892 return NULL;
12893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012894 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012895 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12896 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012897 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012899 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012900 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12901 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012903 return NULL;
12904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012905 int _start_lineno = p->tokens[_mark]->lineno;
12906 UNUSED(_start_lineno); // Only used by EXTRA macro
12907 int _start_col_offset = p->tokens[_mark]->col_offset;
12908 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012909 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012912 return NULL;
12913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012914 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012915 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012916 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012917 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012918 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012919 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012920 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012921 )
12922 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012923 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 +010012924 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12925 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012926 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012927 return NULL;
12928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012929 int _end_lineno = _token->end_lineno;
12930 UNUSED(_end_lineno); // Only used by EXTRA macro
12931 int _end_col_offset = _token->end_col_offset;
12932 UNUSED(_end_col_offset); // Only used by EXTRA macro
12933 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12934 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012935 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012936 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012937 return NULL;
12938 }
12939 goto done;
12940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012941 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012942 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012944 }
12945 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012946 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012947 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012948 return NULL;
12949 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012950 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 +010012951 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012952 expr_ty a;
12953 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012954 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012955 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012956 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012957 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012958 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012959 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012960 &&
12961 _PyPegen_lookahead(0, t_lookahead_rule, p)
12962 )
12963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012964 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 +010012965 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12966 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012967 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012968 return NULL;
12969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012970 int _end_lineno = _token->end_lineno;
12971 UNUSED(_end_lineno); // Only used by EXTRA macro
12972 int _end_col_offset = _token->end_col_offset;
12973 UNUSED(_end_col_offset); // Only used by EXTRA macro
12974 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12975 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012976 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012977 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012978 return NULL;
12979 }
12980 goto done;
12981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012982 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012983 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012985 }
12986 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012987 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012988 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012989 return NULL;
12990 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012991 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 +010012992 Token * _literal;
12993 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012994 expr_ty a;
12995 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012996 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012997 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012998 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012999 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013000 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013001 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013002 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013003 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013004 &&
13005 _PyPegen_lookahead(0, t_lookahead_rule, p)
13006 )
13007 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013008 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 +010013009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13010 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013012 return NULL;
13013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013014 int _end_lineno = _token->end_lineno;
13015 UNUSED(_end_lineno); // Only used by EXTRA macro
13016 int _end_col_offset = _token->end_col_offset;
13017 UNUSED(_end_col_offset); // Only used by EXTRA macro
13018 _res = _Py_Subscript ( a , b , Store , EXTRA );
13019 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013020 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013021 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013022 return NULL;
13023 }
13024 goto done;
13025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013026 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013027 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013029 }
13030 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013031 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013032 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013033 return NULL;
13034 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013035 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013036 expr_ty star_atom_var;
13037 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013038 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013039 )
13040 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013041 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 +010013042 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013043 goto done;
13044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013045 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013046 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013049 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013050 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013051 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013052 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013053 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013054}
13055
13056// star_atom:
13057// | NAME
13058// | '(' star_target ')'
13059// | '(' star_targets_seq? ')'
13060// | '[' star_targets_seq? ']'
13061static expr_ty
13062star_atom_rule(Parser *p)
13063{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013064 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013067 return NULL;
13068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013069 expr_ty _res = NULL;
13070 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013071 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13072 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013074 return NULL;
13075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013076 int _start_lineno = p->tokens[_mark]->lineno;
13077 UNUSED(_start_lineno); // Only used by EXTRA macro
13078 int _start_col_offset = p->tokens[_mark]->col_offset;
13079 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013080 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013082 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013083 return NULL;
13084 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013085 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013086 expr_ty a;
13087 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013088 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013089 )
13090 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013091 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013092 _res = _PyPegen_set_expr_context ( p , a , Store );
13093 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013094 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013095 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013096 return NULL;
13097 }
13098 goto done;
13099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013101 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013103 }
13104 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013106 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013107 return NULL;
13108 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013109 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013110 Token * _literal;
13111 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013112 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013113 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013114 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013115 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013116 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013118 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013119 )
13120 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013121 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 +010013122 _res = _PyPegen_set_expr_context ( p , a , Store );
13123 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013126 return NULL;
13127 }
13128 goto done;
13129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013131 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013133 }
13134 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013137 return NULL;
13138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013139 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 +010013140 Token * _literal;
13141 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013142 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013143 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013144 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013145 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013146 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013147 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013148 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013149 )
13150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013151 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 +010013152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13153 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013155 return NULL;
13156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013157 int _end_lineno = _token->end_lineno;
13158 UNUSED(_end_lineno); // Only used by EXTRA macro
13159 int _end_col_offset = _token->end_col_offset;
13160 UNUSED(_end_col_offset); // Only used by EXTRA macro
13161 _res = _Py_Tuple ( a , Store , EXTRA );
13162 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013163 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013165 return NULL;
13166 }
13167 goto done;
13168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013170 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013172 }
13173 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013176 return NULL;
13177 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013178 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 +010013179 Token * _literal;
13180 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013182 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013183 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013184 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013185 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013186 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013187 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013188 )
13189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013190 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 +010013191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13192 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013194 return NULL;
13195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013196 int _end_lineno = _token->end_lineno;
13197 UNUSED(_end_lineno); // Only used by EXTRA macro
13198 int _end_col_offset = _token->end_col_offset;
13199 UNUSED(_end_col_offset); // Only used by EXTRA macro
13200 _res = _Py_List ( a , Store , EXTRA );
13201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013204 return NULL;
13205 }
13206 goto done;
13207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013209 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013212 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013213 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013214 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013215 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013216}
13217
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013218// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013219static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013220single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013221{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013222 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013225 return NULL;
13226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013227 expr_ty _res = NULL;
13228 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013229 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013232 return NULL;
13233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013234 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 +030013235 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013236 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013237 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013238 )
13239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013240 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 +030013241 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013242 goto done;
13243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013245 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013247 }
13248 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013251 return NULL;
13252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013253 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013254 expr_ty a;
13255 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013256 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013257 )
13258 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013259 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013260 _res = _PyPegen_set_expr_context ( p , a , Store );
13261 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013262 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013263 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013264 return NULL;
13265 }
13266 goto done;
13267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013268 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013269 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013271 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013272 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013273 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013274 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013275 return NULL;
13276 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013277 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013278 Token * _literal;
13279 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013280 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013281 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013282 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013283 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013284 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013285 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013286 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013287 )
13288 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013289 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 +010013290 _res = a;
13291 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013294 return NULL;
13295 }
13296 goto done;
13297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013298 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013299 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013302 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013303 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013304 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013305 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013306}
13307
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013308// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013309// | t_primary '.' NAME !t_lookahead
13310// | t_primary '[' slices ']' !t_lookahead
13311static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013312single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013313{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013314 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013315 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013317 return NULL;
13318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013319 expr_ty _res = NULL;
13320 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13322 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013323 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013324 return NULL;
13325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013326 int _start_lineno = p->tokens[_mark]->lineno;
13327 UNUSED(_start_lineno); // Only used by EXTRA macro
13328 int _start_col_offset = p->tokens[_mark]->col_offset;
13329 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013330 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013331 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013332 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013333 return NULL;
13334 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013335 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 +010013336 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013337 expr_ty a;
13338 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013339 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013340 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013341 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013342 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013343 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013344 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013345 &&
13346 _PyPegen_lookahead(0, t_lookahead_rule, p)
13347 )
13348 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013349 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 +010013350 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13351 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013353 return NULL;
13354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013355 int _end_lineno = _token->end_lineno;
13356 UNUSED(_end_lineno); // Only used by EXTRA macro
13357 int _end_col_offset = _token->end_col_offset;
13358 UNUSED(_end_col_offset); // Only used by EXTRA macro
13359 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13360 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013361 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013363 return NULL;
13364 }
13365 goto done;
13366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013367 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013368 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013370 }
13371 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013373 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013374 return NULL;
13375 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013376 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 +010013377 Token * _literal;
13378 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013379 expr_ty a;
13380 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013381 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013382 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013383 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013384 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013385 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013386 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013387 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013388 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013389 &&
13390 _PyPegen_lookahead(0, t_lookahead_rule, p)
13391 )
13392 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013393 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 +010013394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13395 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013396 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013397 return NULL;
13398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013399 int _end_lineno = _token->end_lineno;
13400 UNUSED(_end_lineno); // Only used by EXTRA macro
13401 int _end_col_offset = _token->end_col_offset;
13402 UNUSED(_end_col_offset); // Only used by EXTRA macro
13403 _res = _Py_Subscript ( a , b , Store , EXTRA );
13404 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013405 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013407 return NULL;
13408 }
13409 goto done;
13410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013411 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013412 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013415 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013416 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013417 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013418 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013419}
13420
13421// del_targets: ','.del_target+ ','?
13422static asdl_seq*
13423del_targets_rule(Parser *p)
13424{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013425 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013428 return NULL;
13429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013430 asdl_seq* _res = NULL;
13431 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013432 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013434 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013435 return NULL;
13436 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013437 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013438 void *_opt_var;
13439 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013440 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013441 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013442 (a = _gather_122_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013444 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013445 )
13446 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013447 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 +010013448 _res = a;
13449 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013450 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013451 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013452 return NULL;
13453 }
13454 goto done;
13455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013456 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013457 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013460 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013461 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013462 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013463 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013464}
13465
13466// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013467// | t_primary '.' NAME !t_lookahead
13468// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013469// | del_t_atom
13470static expr_ty
13471del_target_rule(Parser *p)
13472{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013473 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013476 return NULL;
13477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013478 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013479 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13480 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013481 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013483 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013484 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13485 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013486 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013487 return NULL;
13488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013489 int _start_lineno = p->tokens[_mark]->lineno;
13490 UNUSED(_start_lineno); // Only used by EXTRA macro
13491 int _start_col_offset = p->tokens[_mark]->col_offset;
13492 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013493 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013494 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013495 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013496 return NULL;
13497 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013498 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 +010013499 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013500 expr_ty a;
13501 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013502 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013503 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013505 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013506 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013507 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013508 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013509 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013510 )
13511 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013512 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 +010013513 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13514 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013516 return NULL;
13517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013518 int _end_lineno = _token->end_lineno;
13519 UNUSED(_end_lineno); // Only used by EXTRA macro
13520 int _end_col_offset = _token->end_col_offset;
13521 UNUSED(_end_col_offset); // Only used by EXTRA macro
13522 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13523 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013524 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013525 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013526 return NULL;
13527 }
13528 goto done;
13529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013530 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013531 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013533 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013534 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013536 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013537 return NULL;
13538 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013539 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 +010013540 Token * _literal;
13541 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013542 expr_ty a;
13543 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013544 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013545 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013546 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013547 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013548 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013549 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013550 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013551 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013552 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013553 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013554 )
13555 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013556 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 +010013557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13558 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013560 return NULL;
13561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013562 int _end_lineno = _token->end_lineno;
13563 UNUSED(_end_lineno); // Only used by EXTRA macro
13564 int _end_col_offset = _token->end_col_offset;
13565 UNUSED(_end_col_offset); // Only used by EXTRA macro
13566 _res = _Py_Subscript ( a , b , Del , EXTRA );
13567 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013568 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013569 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013570 return NULL;
13571 }
13572 goto done;
13573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013574 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013575 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013577 }
13578 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013580 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013581 return NULL;
13582 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013583 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 +010013584 expr_ty del_t_atom_var;
13585 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013586 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013587 )
13588 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013589 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 +010013590 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013591 goto done;
13592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013593 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013594 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013597 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013598 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013599 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013600 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013601 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013602}
13603
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013604// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013605static expr_ty
13606del_t_atom_rule(Parser *p)
13607{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013608 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013611 return NULL;
13612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013613 expr_ty _res = NULL;
13614 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013615 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13616 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013617 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013618 return NULL;
13619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013620 int _start_lineno = p->tokens[_mark]->lineno;
13621 UNUSED(_start_lineno); // Only used by EXTRA macro
13622 int _start_col_offset = p->tokens[_mark]->col_offset;
13623 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013624 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013627 return NULL;
13628 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013629 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013630 expr_ty a;
13631 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013632 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013633 )
13634 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013635 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 +010013636 _res = _PyPegen_set_expr_context ( p , a , Del );
13637 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013638 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013640 return NULL;
13641 }
13642 goto done;
13643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013644 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013645 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013647 }
13648 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013650 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013651 return NULL;
13652 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013653 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 +010013654 Token * _literal;
13655 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013656 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013657 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013658 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013659 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013660 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013661 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013662 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013663 )
13664 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013665 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 +010013666 _res = _PyPegen_set_expr_context ( p , a , Del );
13667 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013668 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013670 return NULL;
13671 }
13672 goto done;
13673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013674 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013675 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013677 }
13678 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013679 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013680 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013681 return NULL;
13682 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013683 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 +010013684 Token * _literal;
13685 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013686 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013687 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013688 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013690 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013691 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013692 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013693 )
13694 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013695 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 +010013696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13697 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013699 return NULL;
13700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013701 int _end_lineno = _token->end_lineno;
13702 UNUSED(_end_lineno); // Only used by EXTRA macro
13703 int _end_col_offset = _token->end_col_offset;
13704 UNUSED(_end_col_offset); // Only used by EXTRA macro
13705 _res = _Py_Tuple ( a , Del , EXTRA );
13706 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013707 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013709 return NULL;
13710 }
13711 goto done;
13712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013714 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013716 }
13717 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013720 return NULL;
13721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013722 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 +010013723 Token * _literal;
13724 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013726 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013727 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013728 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013729 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013730 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013731 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013732 )
13733 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013734 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 +010013735 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13736 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013737 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013738 return NULL;
13739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013740 int _end_lineno = _token->end_lineno;
13741 UNUSED(_end_lineno); // Only used by EXTRA macro
13742 int _end_col_offset = _token->end_col_offset;
13743 UNUSED(_end_col_offset); // Only used by EXTRA macro
13744 _res = _Py_List ( a , Del , EXTRA );
13745 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013746 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013748 return NULL;
13749 }
13750 goto done;
13751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013752 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013753 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013756 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013757 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013758 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013759 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013760}
13761
13762// targets: ','.target+ ','?
13763static asdl_seq*
13764targets_rule(Parser *p)
13765{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013766 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013769 return NULL;
13770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013771 asdl_seq* _res = NULL;
13772 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013773 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013775 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013776 return NULL;
13777 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013778 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013779 void *_opt_var;
13780 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013781 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013782 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013783 (a = _gather_124_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013784 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013785 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013786 )
13787 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013788 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013789 _res = a;
13790 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013791 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013792 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013793 return NULL;
13794 }
13795 goto done;
13796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013798 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013801 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013802 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013804 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013805}
13806
13807// target:
13808// | t_primary '.' NAME !t_lookahead
13809// | t_primary '[' slices ']' !t_lookahead
13810// | t_atom
13811static expr_ty
13812target_rule(Parser *p)
13813{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013814 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013815 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013817 return NULL;
13818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013819 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013820 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13821 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013822 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013824 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13826 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013828 return NULL;
13829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013830 int _start_lineno = p->tokens[_mark]->lineno;
13831 UNUSED(_start_lineno); // Only used by EXTRA macro
13832 int _start_col_offset = p->tokens[_mark]->col_offset;
13833 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013834 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013836 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013837 return NULL;
13838 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013839 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 +010013840 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013841 expr_ty a;
13842 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013843 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013844 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013845 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013846 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013848 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013849 &&
13850 _PyPegen_lookahead(0, t_lookahead_rule, p)
13851 )
13852 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013853 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 +010013854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13855 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013857 return NULL;
13858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013859 int _end_lineno = _token->end_lineno;
13860 UNUSED(_end_lineno); // Only used by EXTRA macro
13861 int _end_col_offset = _token->end_col_offset;
13862 UNUSED(_end_col_offset); // Only used by EXTRA macro
13863 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013867 return NULL;
13868 }
13869 goto done;
13870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013872 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013874 }
13875 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013876 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013877 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013878 return NULL;
13879 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013880 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 +010013881 Token * _literal;
13882 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 expr_ty a;
13884 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013885 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013886 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013887 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013888 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013890 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013891 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013892 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013893 &&
13894 _PyPegen_lookahead(0, t_lookahead_rule, p)
13895 )
13896 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013897 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 +010013898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13899 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013901 return NULL;
13902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013903 int _end_lineno = _token->end_lineno;
13904 UNUSED(_end_lineno); // Only used by EXTRA macro
13905 int _end_col_offset = _token->end_col_offset;
13906 UNUSED(_end_col_offset); // Only used by EXTRA macro
13907 _res = _Py_Subscript ( a , b , Store , EXTRA );
13908 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013909 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013911 return NULL;
13912 }
13913 goto done;
13914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013916 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013918 }
13919 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013921 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013922 return NULL;
13923 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013924 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013925 expr_ty t_atom_var;
13926 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013927 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013928 )
13929 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013930 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013931 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013932 goto done;
13933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013935 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013938 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013939 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013940 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013941 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013942 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013943}
13944
13945// Left-recursive
13946// t_primary:
13947// | t_primary '.' NAME &t_lookahead
13948// | t_primary '[' slices ']' &t_lookahead
13949// | t_primary genexp &t_lookahead
13950// | t_primary '(' arguments? ')' &t_lookahead
13951// | atom &t_lookahead
13952static expr_ty t_primary_raw(Parser *);
13953static expr_ty
13954t_primary_rule(Parser *p)
13955{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013956 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013957 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013958 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13959 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013960 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013962 int _mark = p->mark;
13963 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013964 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013965 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013966 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013967 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013968 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013970 p->mark = _mark;
13971 void *_raw = t_primary_raw(p);
13972 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013974 _resmark = p->mark;
13975 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013977 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013978 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013979 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013980}
13981static expr_ty
13982t_primary_raw(Parser *p)
13983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013984 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013987 return NULL;
13988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013989 expr_ty _res = NULL;
13990 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13992 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013994 return NULL;
13995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013996 int _start_lineno = p->tokens[_mark]->lineno;
13997 UNUSED(_start_lineno); // Only used by EXTRA macro
13998 int _start_col_offset = p->tokens[_mark]->col_offset;
13999 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014000 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014002 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014003 return NULL;
14004 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014005 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 +010014006 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014007 expr_ty a;
14008 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014009 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014010 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014011 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014012 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014014 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014015 &&
14016 _PyPegen_lookahead(1, t_lookahead_rule, p)
14017 )
14018 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014019 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 +010014020 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14021 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014023 return NULL;
14024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014025 int _end_lineno = _token->end_lineno;
14026 UNUSED(_end_lineno); // Only used by EXTRA macro
14027 int _end_col_offset = _token->end_col_offset;
14028 UNUSED(_end_col_offset); // Only used by EXTRA macro
14029 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14030 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014031 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014032 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014033 return NULL;
14034 }
14035 goto done;
14036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014037 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014038 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014040 }
14041 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014042 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014043 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014044 return NULL;
14045 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014046 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 +010014047 Token * _literal;
14048 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014049 expr_ty a;
14050 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014051 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014052 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014053 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014054 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014055 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014056 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014057 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014058 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014059 &&
14060 _PyPegen_lookahead(1, t_lookahead_rule, p)
14061 )
14062 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014063 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 +010014064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14065 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014067 return NULL;
14068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014069 int _end_lineno = _token->end_lineno;
14070 UNUSED(_end_lineno); // Only used by EXTRA macro
14071 int _end_col_offset = _token->end_col_offset;
14072 UNUSED(_end_col_offset); // Only used by EXTRA macro
14073 _res = _Py_Subscript ( a , b , Load , EXTRA );
14074 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014075 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014077 return NULL;
14078 }
14079 goto done;
14080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014081 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014082 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014084 }
14085 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014088 return NULL;
14089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014090 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 +010014091 expr_ty a;
14092 expr_ty b;
14093 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014094 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014095 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014096 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014097 &&
14098 _PyPegen_lookahead(1, t_lookahead_rule, p)
14099 )
14100 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014101 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 +010014102 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14103 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014105 return NULL;
14106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014107 int _end_lineno = _token->end_lineno;
14108 UNUSED(_end_lineno); // Only used by EXTRA macro
14109 int _end_col_offset = _token->end_col_offset;
14110 UNUSED(_end_col_offset); // Only used by EXTRA macro
14111 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14112 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014113 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014115 return NULL;
14116 }
14117 goto done;
14118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014119 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014120 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014122 }
14123 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014124 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014125 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014126 return NULL;
14127 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014128 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 +010014129 Token * _literal;
14130 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014131 expr_ty a;
14132 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014133 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014134 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014135 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014136 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014138 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014139 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014140 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014141 &&
14142 _PyPegen_lookahead(1, t_lookahead_rule, p)
14143 )
14144 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014145 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 +010014146 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14147 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014148 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014149 return NULL;
14150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014151 int _end_lineno = _token->end_lineno;
14152 UNUSED(_end_lineno); // Only used by EXTRA macro
14153 int _end_col_offset = _token->end_col_offset;
14154 UNUSED(_end_col_offset); // Only used by EXTRA macro
14155 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14156 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014157 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014159 return NULL;
14160 }
14161 goto done;
14162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014163 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014164 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014166 }
14167 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014170 return NULL;
14171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014172 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 +010014173 expr_ty a;
14174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014175 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014176 &&
14177 _PyPegen_lookahead(1, t_lookahead_rule, p)
14178 )
14179 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014180 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 +010014181 _res = a;
14182 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014183 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014185 return NULL;
14186 }
14187 goto done;
14188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014189 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014190 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014193 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014194 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014195 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014196 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014197}
14198
14199// t_lookahead: '(' | '[' | '.'
14200static void *
14201t_lookahead_rule(Parser *p)
14202{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014203 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014206 return NULL;
14207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014208 void * _res = NULL;
14209 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014210 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014213 return NULL;
14214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014215 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014216 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014217 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014218 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014219 )
14220 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014221 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014222 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014223 goto done;
14224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014225 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014226 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014228 }
14229 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014232 return NULL;
14233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014234 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014235 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014236 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014237 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014238 )
14239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014240 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014241 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014242 goto done;
14243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014245 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014247 }
14248 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014251 return NULL;
14252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014253 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014254 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014255 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014256 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014257 )
14258 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014259 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014260 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014261 goto done;
14262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014263 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014264 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014267 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014268 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014269 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014270 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014271}
14272
14273// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14274static expr_ty
14275t_atom_rule(Parser *p)
14276{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014277 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014278 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014280 return NULL;
14281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014282 expr_ty _res = NULL;
14283 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14285 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014287 return NULL;
14288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014289 int _start_lineno = p->tokens[_mark]->lineno;
14290 UNUSED(_start_lineno); // Only used by EXTRA macro
14291 int _start_col_offset = p->tokens[_mark]->col_offset;
14292 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014293 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014294 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014295 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014296 return NULL;
14297 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014298 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014299 expr_ty a;
14300 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014301 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014302 )
14303 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014304 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014305 _res = _PyPegen_set_expr_context ( p , a , Store );
14306 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014307 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014308 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014309 return NULL;
14310 }
14311 goto done;
14312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014313 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014314 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014316 }
14317 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014320 return NULL;
14321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014322 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014323 Token * _literal;
14324 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014325 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014326 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014327 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014328 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014329 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014330 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014331 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014332 )
14333 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014334 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014335 _res = _PyPegen_set_expr_context ( p , a , Store );
14336 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014337 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014338 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014339 return NULL;
14340 }
14341 goto done;
14342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014343 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014344 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014346 }
14347 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014348 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014349 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014350 return NULL;
14351 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014352 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014353 Token * _literal;
14354 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014355 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014356 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014357 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014358 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014359 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014360 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014361 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014362 )
14363 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014364 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14366 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014368 return NULL;
14369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014370 int _end_lineno = _token->end_lineno;
14371 UNUSED(_end_lineno); // Only used by EXTRA macro
14372 int _end_col_offset = _token->end_col_offset;
14373 UNUSED(_end_col_offset); // Only used by EXTRA macro
14374 _res = _Py_Tuple ( b , Store , EXTRA );
14375 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014378 return NULL;
14379 }
14380 goto done;
14381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014382 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014383 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014385 }
14386 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014388 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014389 return NULL;
14390 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014391 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014392 Token * _literal;
14393 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014394 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014395 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014396 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014397 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014398 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014399 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014400 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014401 )
14402 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014403 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14405 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014407 return NULL;
14408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014409 int _end_lineno = _token->end_lineno;
14410 UNUSED(_end_lineno); // Only used by EXTRA macro
14411 int _end_col_offset = _token->end_col_offset;
14412 UNUSED(_end_col_offset); // Only used by EXTRA macro
14413 _res = _Py_List ( b , Store , EXTRA );
14414 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014415 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014416 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014417 return NULL;
14418 }
14419 goto done;
14420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014421 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014422 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014425 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014426 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014427 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014428 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014429}
14430
14431// incorrect_arguments:
14432// | args ',' '*'
14433// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014434// | args for_if_clauses
14435// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014436// | args ',' args
14437static void *
14438incorrect_arguments_rule(Parser *p)
14439{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014440 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014442 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014443 return NULL;
14444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014445 void * _res = NULL;
14446 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014447 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014450 return NULL;
14451 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014452 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014453 Token * _literal;
14454 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014455 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014456 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014457 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014460 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014461 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014462 )
14463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014464 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014465 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14466 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014467 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014468 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014469 return NULL;
14470 }
14471 goto done;
14472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014473 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014474 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014476 }
14477 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014478 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014479 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014480 return NULL;
14481 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014482 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 +010014483 Token * _literal;
14484 void *_opt_var;
14485 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014486 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014487 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014488 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014489 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014490 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014491 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014492 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014493 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014494 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014495 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014496 )
14497 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014498 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 +030014499 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014500 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014501 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014503 return NULL;
14504 }
14505 goto done;
14506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014507 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014508 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014510 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014511 { // args for_if_clauses
14512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014513 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014514 return NULL;
14515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014516 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 -070014517 expr_ty a;
14518 asdl_seq* for_if_clauses_var;
14519 if (
14520 (a = args_rule(p)) // args
14521 &&
14522 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14523 )
14524 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014525 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 -070014526 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14527 if (_res == NULL && PyErr_Occurred()) {
14528 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014529 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014530 return NULL;
14531 }
14532 goto done;
14533 }
14534 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014535 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014537 }
14538 { // args ',' expression for_if_clauses
14539 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014540 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014541 return NULL;
14542 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014543 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 -070014544 Token * _literal;
14545 expr_ty a;
14546 expr_ty args_var;
14547 asdl_seq* for_if_clauses_var;
14548 if (
14549 (args_var = args_rule(p)) // args
14550 &&
14551 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14552 &&
14553 (a = expression_rule(p)) // expression
14554 &&
14555 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14556 )
14557 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014558 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 -070014559 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14560 if (_res == NULL && PyErr_Occurred()) {
14561 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014562 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014563 return NULL;
14564 }
14565 goto done;
14566 }
14567 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014568 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014570 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014571 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014573 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014574 return NULL;
14575 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014576 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014577 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014578 expr_ty a;
14579 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014581 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014582 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014583 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014585 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014586 )
14587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014588 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 +010014589 _res = _PyPegen_arguments_parsing_error ( p , a );
14590 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014591 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014593 return NULL;
14594 }
14595 goto done;
14596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014597 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014598 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014601 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014602 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014603 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014604 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014605}
14606
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014607// invalid_kwarg: expression '='
14608static void *
14609invalid_kwarg_rule(Parser *p)
14610{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014611 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014613 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014614 return NULL;
14615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014616 void * _res = NULL;
14617 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014618 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014621 return NULL;
14622 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014623 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014624 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014625 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014626 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014627 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014629 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014630 )
14631 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014632 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014633 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014634 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014636 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014637 return NULL;
14638 }
14639 goto done;
14640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014641 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014642 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014645 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014646 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014647 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014648 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014649}
14650
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014651// invalid_named_expression: expression ':=' expression
14652static void *
14653invalid_named_expression_rule(Parser *p)
14654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014658 return NULL;
14659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014660 void * _res = NULL;
14661 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014662 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014663 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014664 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014665 return NULL;
14666 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014667 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 +010014668 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 expr_ty a;
14670 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014672 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014673 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014674 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014676 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014677 )
14678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014679 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 +030014680 _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 +010014681 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014682 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014683 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014684 return NULL;
14685 }
14686 goto done;
14687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014689 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014692 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014693 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014694 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014695 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014696}
14697
14698// invalid_assignment:
14699// | list ':'
14700// | tuple ':'
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014701// | star_named_expression ',' star_named_expressions* ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014702// | expression ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014703// | ((star_targets '='))* star_expressions '='
14704// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014705// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014706static void *
14707invalid_assignment_rule(Parser *p)
14708{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014709 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014711 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014712 return NULL;
14713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014714 void * _res = NULL;
14715 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014716 { // list ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014718 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014719 return NULL;
14720 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014721 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list ':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014722 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014723 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014724 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014725 (a = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014726 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014727 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014728 )
14729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014730 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014731 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not list) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014732 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014733 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014734 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014735 return NULL;
14736 }
14737 goto done;
14738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014739 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014740 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list ':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014742 }
14743 { // tuple ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014745 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014746 return NULL;
14747 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014748 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple ':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014749 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014750 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014751 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014752 (a = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014753 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014754 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014755 )
14756 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014757 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014758 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14759 if (_res == NULL && PyErr_Occurred()) {
14760 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014761 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014762 return NULL;
14763 }
14764 goto done;
14765 }
14766 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014767 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014769 }
14770 { // star_named_expression ',' star_named_expressions* ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014772 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014773 return NULL;
14774 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014775 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014776 Token * _literal;
14777 Token * _literal_1;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014778 asdl_seq * _loop0_127_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014779 expr_ty a;
14780 if (
14781 (a = star_named_expression_rule(p)) // star_named_expression
14782 &&
14783 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14784 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014785 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014786 &&
14787 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
14788 )
14789 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014790 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014791 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014792 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014793 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014795 return NULL;
14796 }
14797 goto done;
14798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014799 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014800 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014802 }
14803 { // expression ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014804 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014805 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014806 return NULL;
14807 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014808 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014809 Token * _literal;
14810 void *_opt_var;
14811 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014812 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014813 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014814 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014815 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014816 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014817 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014818 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014819 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014820 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014821 (_opt_var = _tmp_128_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014822 )
14823 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014824 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression ['=' annotated_rhs]"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014825 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014829 return NULL;
14830 }
14831 goto done;
14832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014834 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014836 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014837 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014840 return NULL;
14841 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014842 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 +010014843 Token * _literal;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014844 asdl_seq * _loop0_129_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014845 expr_ty a;
14846 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014847 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014848 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014849 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014850 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014851 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014852 )
14853 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014854 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014855 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( GET_INVALID_TARGET ( a ) , "cannot assign to %s" , _PyPegen_get_expr_name ( GET_INVALID_TARGET ( a ) ) );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014856 if (_res == NULL && PyErr_Occurred()) {
14857 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014858 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014859 return NULL;
14860 }
14861 goto done;
14862 }
14863 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014864 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14866 }
14867 { // ((star_targets '='))* yield_expr '='
14868 if (p->error_indicator) {
14869 D(p->level--);
14870 return NULL;
14871 }
14872 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14873 Token * _literal;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014874 asdl_seq * _loop0_130_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014875 expr_ty a;
14876 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014877 (_loop0_130_var = _loop0_130_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014878 &&
14879 (a = yield_expr_rule(p)) // yield_expr
14880 &&
14881 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14882 )
14883 {
14884 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14885 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14886 if (_res == NULL && PyErr_Occurred()) {
14887 p->error_indicator = 1;
14888 D(p->level--);
14889 return NULL;
14890 }
14891 goto done;
14892 }
14893 p->mark = _mark;
14894 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014896 }
14897 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014899 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014900 return NULL;
14901 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014902 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014903 void *_tmp_131_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014904 expr_ty a;
14905 AugOperator* augassign_var;
14906 if (
14907 (a = star_expressions_rule(p)) // star_expressions
14908 &&
14909 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014910 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014911 (_tmp_131_var = _tmp_131_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014912 )
14913 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014914 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 +010014915 _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 +010014916 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014917 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014919 return NULL;
14920 }
14921 goto done;
14922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014923 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014924 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014927 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014928 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014929 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014930 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014931}
14932
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014933// invalid_del_stmt: 'del' star_expressions
14934static void *
14935invalid_del_stmt_rule(Parser *p)
14936{
14937 D(p->level++);
14938 if (p->error_indicator) {
14939 D(p->level--);
14940 return NULL;
14941 }
14942 void * _res = NULL;
14943 int _mark = p->mark;
14944 { // 'del' star_expressions
14945 if (p->error_indicator) {
14946 D(p->level--);
14947 return NULL;
14948 }
14949 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
14950 Token * _keyword;
14951 expr_ty a;
14952 if (
14953 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
14954 &&
14955 (a = star_expressions_rule(p)) // star_expressions
14956 )
14957 {
14958 D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
14959 _res = GET_INVALID_DEL_TARGET ( a ) != NULL ? RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( GET_INVALID_DEL_TARGET ( a ) , "cannot delete %s" , _PyPegen_get_expr_name ( GET_INVALID_DEL_TARGET ( a ) ) ) : RAISE_SYNTAX_ERROR ( "invalid syntax" );
14960 if (_res == NULL && PyErr_Occurred()) {
14961 p->error_indicator = 1;
14962 D(p->level--);
14963 return NULL;
14964 }
14965 goto done;
14966 }
14967 p->mark = _mark;
14968 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
14969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
14970 }
14971 _res = NULL;
14972 done:
14973 D(p->level--);
14974 return _res;
14975}
14976
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014977// invalid_block: NEWLINE !INDENT
14978static void *
14979invalid_block_rule(Parser *p)
14980{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014981 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014982 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014983 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014984 return NULL;
14985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014986 void * _res = NULL;
14987 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014988 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014990 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014991 return NULL;
14992 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014993 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010014994 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014995 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014996 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014998 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014999 )
15000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015001 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 +010015002 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15003 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015004 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015005 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015006 return NULL;
15007 }
15008 goto done;
15009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015011 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015014 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015015 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015017 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015018}
15019
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015020// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015021static void *
15022invalid_comprehension_rule(Parser *p)
15023{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015024 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015025 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015026 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015027 return NULL;
15028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015029 void * _res = NULL;
15030 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015031 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015033 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015034 return NULL;
15035 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015036 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015037 void *_tmp_132_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015038 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015039 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015040 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015041 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015042 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015043 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015044 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015045 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015046 )
15047 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015048 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 +030015049 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015050 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015051 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015053 return NULL;
15054 }
15055 goto done;
15056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015057 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015058 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015061 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015062 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015063 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015064 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015065}
15066
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015067// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15068static void *
15069invalid_dict_comprehension_rule(Parser *p)
15070{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015071 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015073 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015074 return NULL;
15075 }
15076 void * _res = NULL;
15077 int _mark = p->mark;
15078 { // '{' '**' bitwise_or for_if_clauses '}'
15079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015080 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015081 return NULL;
15082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015083 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 -070015084 Token * _literal;
15085 Token * _literal_1;
15086 Token * a;
15087 expr_ty bitwise_or_var;
15088 asdl_seq* for_if_clauses_var;
15089 if (
15090 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15091 &&
15092 (a = _PyPegen_expect_token(p, 35)) // token='**'
15093 &&
15094 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15095 &&
15096 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15097 &&
15098 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15099 )
15100 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015101 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 -070015102 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15103 if (_res == NULL && PyErr_Occurred()) {
15104 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015105 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015106 return NULL;
15107 }
15108 goto done;
15109 }
15110 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015111 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015113 }
15114 _res = NULL;
15115 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015116 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015117 return _res;
15118}
15119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015120// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015121// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015122static void *
15123invalid_parameters_rule(Parser *p)
15124{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015125 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015128 return NULL;
15129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015130 void * _res = NULL;
15131 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015132 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015135 return NULL;
15136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015137 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 Nikolaoua5442b22020-06-19 03:03:58 +030015138 asdl_seq * _loop0_133_var;
15139 void *_tmp_134_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015140 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015141 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015142 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015143 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015144 (_tmp_134_var = _tmp_134_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015145 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015146 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015147 )
15148 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015149 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 +010015150 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15151 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015152 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015153 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015154 return NULL;
15155 }
15156 goto done;
15157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015158 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015159 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15160 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 +010015161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015162 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015163 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015164 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015165 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015166}
15167
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015168// invalid_lambda_parameters:
15169// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15170static void *
15171invalid_lambda_parameters_rule(Parser *p)
15172{
15173 D(p->level++);
15174 if (p->error_indicator) {
15175 D(p->level--);
15176 return NULL;
15177 }
15178 void * _res = NULL;
15179 int _mark = p->mark;
15180 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15181 if (p->error_indicator) {
15182 D(p->level--);
15183 return NULL;
15184 }
15185 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 Nikolaoua5442b22020-06-19 03:03:58 +030015186 asdl_seq * _loop0_135_var;
15187 void *_tmp_136_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015188 arg_ty lambda_param_no_default_var;
15189 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015190 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015191 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015192 (_tmp_136_var = _tmp_136_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015193 &&
15194 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15195 )
15196 {
15197 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"));
15198 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15199 if (_res == NULL && PyErr_Occurred()) {
15200 p->error_indicator = 1;
15201 D(p->level--);
15202 return NULL;
15203 }
15204 goto done;
15205 }
15206 p->mark = _mark;
15207 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15209 }
15210 _res = NULL;
15211 done:
15212 D(p->level--);
15213 return _res;
15214}
15215
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015216// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015217static void *
15218invalid_star_etc_rule(Parser *p)
15219{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015220 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015222 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015223 return NULL;
15224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015225 void * _res = NULL;
15226 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015227 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015228 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015229 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015230 return NULL;
15231 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015232 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015233 Token * _literal;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015234 void *_tmp_137_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015235 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015236 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015237 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015238 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015239 )
15240 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015241 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015242 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15243 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015244 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015245 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015246 return NULL;
15247 }
15248 goto done;
15249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015250 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015251 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015253 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015254 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015256 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015257 return NULL;
15258 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015259 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015260 Token * _literal;
15261 Token * _literal_1;
15262 Token * type_comment_var;
15263 if (
15264 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15265 &&
15266 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15267 &&
15268 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15269 )
15270 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015271 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 +030015272 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15273 if (_res == NULL && PyErr_Occurred()) {
15274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015275 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015276 return NULL;
15277 }
15278 goto done;
15279 }
15280 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015281 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015284 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015285 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015287 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015288}
15289
15290// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15291static void *
15292invalid_lambda_star_etc_rule(Parser *p)
15293{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015294 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015296 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015297 return NULL;
15298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015299 void * _res = NULL;
15300 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015301 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015303 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015304 return NULL;
15305 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015306 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015307 Token * _literal;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015308 void *_tmp_138_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015309 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015310 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015311 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015312 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015313 )
15314 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015315 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 +010015316 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15317 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015318 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015319 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015320 return NULL;
15321 }
15322 goto done;
15323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015324 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015325 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015328 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015329 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015331 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015332}
15333
Guido van Rossumc001c092020-04-30 12:12:19 -070015334// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15335static void *
15336invalid_double_type_comments_rule(Parser *p)
15337{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015338 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015340 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015341 return NULL;
15342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015343 void * _res = NULL;
15344 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015345 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015348 return NULL;
15349 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015350 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 +010015351 Token * indent_var;
15352 Token * newline_var;
15353 Token * newline_var_1;
15354 Token * type_comment_var;
15355 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015356 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015357 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015358 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015359 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015360 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015361 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015362 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015363 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015364 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015365 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015366 )
15367 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015368 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 +010015369 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15370 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015371 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015372 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015373 return NULL;
15374 }
15375 goto done;
15376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015377 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015378 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015381 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015382 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015383 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015384 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015385}
15386
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015387// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015388static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015389invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015390{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015391 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015393 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015394 return NULL;
15395 }
15396 void * _res = NULL;
15397 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015398 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015399 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015400 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015401 return NULL;
15402 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015403 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15404 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015405 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015406 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015407 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015408 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015409 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015410 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15411 &&
15412 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015413 )
15414 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015415 D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15416 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( GET_INVALID_TARGET ( a ) , "cannot assign to %s" , _PyPegen_get_expr_name ( GET_INVALID_TARGET ( a ) ) );
Shantanu27c0d9b2020-05-11 14:53:58 -070015417 if (_res == NULL && PyErr_Occurred()) {
15418 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015419 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015420 return NULL;
15421 }
15422 goto done;
15423 }
15424 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015425 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15427 }
15428 _res = NULL;
15429 done:
15430 D(p->level--);
15431 return _res;
15432}
15433
15434// invalid_for_target: ASYNC? 'for' star_expressions
15435static void *
15436invalid_for_target_rule(Parser *p)
15437{
15438 D(p->level++);
15439 if (p->error_indicator) {
15440 D(p->level--);
15441 return NULL;
15442 }
15443 void * _res = NULL;
15444 int _mark = p->mark;
15445 { // ASYNC? 'for' star_expressions
15446 if (p->error_indicator) {
15447 D(p->level--);
15448 return NULL;
15449 }
15450 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15451 Token * _keyword;
15452 void *_opt_var;
15453 UNUSED(_opt_var); // Silence compiler warnings
15454 expr_ty a;
15455 if (
15456 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15457 &&
15458 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15459 &&
15460 (a = star_expressions_rule(p)) // star_expressions
15461 )
15462 {
15463 D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15464 _res = GET_INVALID_FOR_TARGET ( a ) != NULL ? RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( GET_INVALID_FOR_TARGET ( a ) , "cannot assign to %s" , _PyPegen_get_expr_name ( GET_INVALID_FOR_TARGET ( a ) ) ) : RAISE_SYNTAX_ERROR ( "invalid syntax" );
15465 if (_res == NULL && PyErr_Occurred()) {
15466 p->error_indicator = 1;
15467 D(p->level--);
15468 return NULL;
15469 }
15470 goto done;
15471 }
15472 p->mark = _mark;
15473 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15475 }
15476 _res = NULL;
15477 done:
15478 D(p->level--);
15479 return _res;
15480}
15481
15482// invalid_group: '(' starred_expression ')'
15483static void *
15484invalid_group_rule(Parser *p)
15485{
15486 D(p->level++);
15487 if (p->error_indicator) {
15488 D(p->level--);
15489 return NULL;
15490 }
15491 void * _res = NULL;
15492 int _mark = p->mark;
15493 { // '(' starred_expression ')'
15494 if (p->error_indicator) {
15495 D(p->level--);
15496 return NULL;
15497 }
15498 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15499 Token * _literal;
15500 Token * _literal_1;
15501 expr_ty a;
15502 if (
15503 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15504 &&
15505 (a = starred_expression_rule(p)) // starred_expression
15506 &&
15507 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15508 )
15509 {
15510 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15511 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15512 if (_res == NULL && PyErr_Occurred()) {
15513 p->error_indicator = 1;
15514 D(p->level--);
15515 return NULL;
15516 }
15517 goto done;
15518 }
15519 p->mark = _mark;
15520 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015522 }
15523 _res = NULL;
15524 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015525 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015526 return _res;
15527}
15528
Pablo Galindo275d7e12020-05-21 22:04:54 +010015529// invalid_import_from_targets: import_from_as_names ','
15530static void *
15531invalid_import_from_targets_rule(Parser *p)
15532{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015533 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015534 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015535 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015536 return NULL;
15537 }
15538 void * _res = NULL;
15539 int _mark = p->mark;
15540 { // import_from_as_names ','
15541 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015542 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015543 return NULL;
15544 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015545 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 +010015546 Token * _literal;
15547 asdl_seq* import_from_as_names_var;
15548 if (
15549 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15550 &&
15551 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15552 )
15553 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015554 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 +010015555 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15556 if (_res == NULL && PyErr_Occurred()) {
15557 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015558 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015559 return NULL;
15560 }
15561 goto done;
15562 }
15563 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015564 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015566 }
15567 _res = NULL;
15568 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015569 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015570 return _res;
15571}
15572
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015573// _loop0_1: NEWLINE
15574static asdl_seq *
15575_loop0_1_rule(Parser *p)
15576{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015577 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015580 return NULL;
15581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015582 void *_res = NULL;
15583 int _mark = p->mark;
15584 int _start_mark = p->mark;
15585 void **_children = PyMem_Malloc(sizeof(void *));
15586 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015587 p->error_indicator = 1;
15588 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015590 return NULL;
15591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015592 ssize_t _children_capacity = 1;
15593 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015594 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015596 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015597 return NULL;
15598 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015599 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015600 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015601 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015602 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015603 )
15604 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015605 _res = newline_var;
15606 if (_n == _children_capacity) {
15607 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015608 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15609 if (!_new_children) {
15610 p->error_indicator = 1;
15611 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015612 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015613 return NULL;
15614 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015615 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015617 _children[_n++] = _res;
15618 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015620 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015621 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015624 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15625 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015626 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015627 p->error_indicator = 1;
15628 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015629 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015630 return NULL;
15631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015632 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15633 PyMem_Free(_children);
15634 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015635 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015636 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015637}
15638
Guido van Rossumc001c092020-04-30 12:12:19 -070015639// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015640static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015641_loop0_2_rule(Parser *p)
15642{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015643 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015644 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015645 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015646 return NULL;
15647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015648 void *_res = NULL;
15649 int _mark = p->mark;
15650 int _start_mark = p->mark;
15651 void **_children = PyMem_Malloc(sizeof(void *));
15652 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015653 p->error_indicator = 1;
15654 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015655 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015656 return NULL;
15657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015658 ssize_t _children_capacity = 1;
15659 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015660 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015663 return NULL;
15664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015665 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015666 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015667 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015668 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015669 )
15670 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015671 _res = newline_var;
15672 if (_n == _children_capacity) {
15673 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015674 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15675 if (!_new_children) {
15676 p->error_indicator = 1;
15677 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015678 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015679 return NULL;
15680 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015681 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015683 _children[_n++] = _res;
15684 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015686 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015687 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015690 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15691 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015692 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015693 p->error_indicator = 1;
15694 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015695 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015696 return NULL;
15697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015698 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15699 PyMem_Free(_children);
15700 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015701 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015702 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015703}
15704
15705// _loop0_4: ',' expression
15706static asdl_seq *
15707_loop0_4_rule(Parser *p)
15708{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015709 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015711 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015712 return NULL;
15713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015714 void *_res = NULL;
15715 int _mark = p->mark;
15716 int _start_mark = p->mark;
15717 void **_children = PyMem_Malloc(sizeof(void *));
15718 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015719 p->error_indicator = 1;
15720 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015721 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015722 return NULL;
15723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015724 ssize_t _children_capacity = 1;
15725 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015726 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015729 return NULL;
15730 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015731 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015732 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015733 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015734 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015735 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015736 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015737 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015738 )
15739 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015740 _res = elem;
15741 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015742 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015743 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015744 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015745 return NULL;
15746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015747 if (_n == _children_capacity) {
15748 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015749 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15750 if (!_new_children) {
15751 p->error_indicator = 1;
15752 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015753 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015754 return NULL;
15755 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015756 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015758 _children[_n++] = _res;
15759 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015761 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015762 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015765 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15766 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015767 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015768 p->error_indicator = 1;
15769 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015770 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015771 return NULL;
15772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015773 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15774 PyMem_Free(_children);
15775 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015776 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015777 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015778}
15779
15780// _gather_3: expression _loop0_4
15781static asdl_seq *
15782_gather_3_rule(Parser *p)
15783{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015784 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015786 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015787 return NULL;
15788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015789 asdl_seq * _res = NULL;
15790 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015791 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015793 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015794 return NULL;
15795 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015796 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 -070015797 expr_ty elem;
15798 asdl_seq * seq;
15799 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015800 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015801 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015802 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015803 )
15804 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015805 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 +010015806 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015807 goto done;
15808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015809 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015810 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015813 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015814 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015815 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015816 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015817}
15818
15819// _loop0_6: ',' expression
15820static asdl_seq *
15821_loop0_6_rule(Parser *p)
15822{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015823 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015825 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015826 return NULL;
15827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015828 void *_res = NULL;
15829 int _mark = p->mark;
15830 int _start_mark = p->mark;
15831 void **_children = PyMem_Malloc(sizeof(void *));
15832 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015833 p->error_indicator = 1;
15834 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015835 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015836 return NULL;
15837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015838 ssize_t _children_capacity = 1;
15839 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015840 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015843 return NULL;
15844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015845 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015846 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015847 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015848 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015849 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015850 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015851 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015852 )
15853 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015854 _res = elem;
15855 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015856 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015857 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015858 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015859 return NULL;
15860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015861 if (_n == _children_capacity) {
15862 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15864 if (!_new_children) {
15865 p->error_indicator = 1;
15866 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015867 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015868 return NULL;
15869 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015870 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015872 _children[_n++] = _res;
15873 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015875 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015876 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015879 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15880 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015881 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015882 p->error_indicator = 1;
15883 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015884 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015885 return NULL;
15886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015887 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15888 PyMem_Free(_children);
15889 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015890 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015891 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015892}
15893
15894// _gather_5: expression _loop0_6
15895static asdl_seq *
15896_gather_5_rule(Parser *p)
15897{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015898 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015900 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015901 return NULL;
15902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015903 asdl_seq * _res = NULL;
15904 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015905 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015907 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015908 return NULL;
15909 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015910 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 -070015911 expr_ty elem;
15912 asdl_seq * seq;
15913 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015914 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015915 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015916 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015917 )
15918 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015919 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 +010015920 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015921 goto done;
15922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015923 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015924 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015927 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015928 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015929 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015930 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015931}
15932
15933// _loop0_8: ',' expression
15934static asdl_seq *
15935_loop0_8_rule(Parser *p)
15936{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015937 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015939 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015940 return NULL;
15941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015942 void *_res = NULL;
15943 int _mark = p->mark;
15944 int _start_mark = p->mark;
15945 void **_children = PyMem_Malloc(sizeof(void *));
15946 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015947 p->error_indicator = 1;
15948 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015949 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015950 return NULL;
15951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015952 ssize_t _children_capacity = 1;
15953 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015954 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015957 return NULL;
15958 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015959 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015960 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015961 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015962 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015963 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015964 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015965 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015966 )
15967 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015968 _res = elem;
15969 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015970 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015971 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015972 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015973 return NULL;
15974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015975 if (_n == _children_capacity) {
15976 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015977 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15978 if (!_new_children) {
15979 p->error_indicator = 1;
15980 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015981 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015982 return NULL;
15983 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015984 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015986 _children[_n++] = _res;
15987 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015989 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015990 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
15991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015993 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15994 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015995 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015996 p->error_indicator = 1;
15997 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015998 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015999 return NULL;
16000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016001 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16002 PyMem_Free(_children);
16003 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016004 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016005 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016006}
16007
16008// _gather_7: expression _loop0_8
16009static asdl_seq *
16010_gather_7_rule(Parser *p)
16011{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016012 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016013 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016014 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016015 return NULL;
16016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016017 asdl_seq * _res = NULL;
16018 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016019 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016020 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016021 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016022 return NULL;
16023 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016024 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 -070016025 expr_ty elem;
16026 asdl_seq * seq;
16027 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016028 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016029 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016030 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016031 )
16032 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016033 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 +010016034 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016035 goto done;
16036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016037 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016038 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016041 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016042 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016043 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016044 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016045}
16046
16047// _loop0_10: ',' expression
16048static asdl_seq *
16049_loop0_10_rule(Parser *p)
16050{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016051 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016053 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016054 return NULL;
16055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016056 void *_res = NULL;
16057 int _mark = p->mark;
16058 int _start_mark = p->mark;
16059 void **_children = PyMem_Malloc(sizeof(void *));
16060 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016061 p->error_indicator = 1;
16062 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016063 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016064 return NULL;
16065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016066 ssize_t _children_capacity = 1;
16067 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016068 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016070 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016071 return NULL;
16072 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016073 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016074 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016075 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016076 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016077 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016078 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016079 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016080 )
16081 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016082 _res = elem;
16083 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016084 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016085 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016086 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016087 return NULL;
16088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016089 if (_n == _children_capacity) {
16090 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016091 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16092 if (!_new_children) {
16093 p->error_indicator = 1;
16094 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016095 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016096 return NULL;
16097 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016098 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016100 _children[_n++] = _res;
16101 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016103 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016104 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016107 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16108 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016109 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016110 p->error_indicator = 1;
16111 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016112 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016113 return NULL;
16114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016115 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16116 PyMem_Free(_children);
16117 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016118 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016119 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016120}
16121
16122// _gather_9: expression _loop0_10
16123static asdl_seq *
16124_gather_9_rule(Parser *p)
16125{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016126 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016127 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016128 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016129 return NULL;
16130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016131 asdl_seq * _res = NULL;
16132 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016133 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016134 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016135 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016136 return NULL;
16137 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016138 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 -070016139 expr_ty elem;
16140 asdl_seq * seq;
16141 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016142 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016143 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016144 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016145 )
16146 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016147 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 +010016148 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016149 goto done;
16150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016151 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016152 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016155 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016156 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016157 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016158 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016159}
16160
16161// _loop1_11: statement
16162static asdl_seq *
16163_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016164{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016165 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016167 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016168 return NULL;
16169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016170 void *_res = NULL;
16171 int _mark = p->mark;
16172 int _start_mark = p->mark;
16173 void **_children = PyMem_Malloc(sizeof(void *));
16174 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016175 p->error_indicator = 1;
16176 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016177 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016178 return NULL;
16179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016180 ssize_t _children_capacity = 1;
16181 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016182 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016184 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016185 return NULL;
16186 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016187 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016188 asdl_seq* statement_var;
16189 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016190 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016191 )
16192 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016193 _res = statement_var;
16194 if (_n == _children_capacity) {
16195 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16197 if (!_new_children) {
16198 p->error_indicator = 1;
16199 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016200 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016201 return NULL;
16202 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016203 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016205 _children[_n++] = _res;
16206 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016209 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016212 if (_n == 0 || p->error_indicator) {
16213 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016215 return NULL;
16216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016217 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16218 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016219 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016220 p->error_indicator = 1;
16221 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016222 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016223 return NULL;
16224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016225 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16226 PyMem_Free(_children);
16227 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016228 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016229 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016230}
16231
Guido van Rossumc001c092020-04-30 12:12:19 -070016232// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016233static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016234_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016235{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016236 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016237 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016238 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016239 return NULL;
16240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016241 void *_res = NULL;
16242 int _mark = p->mark;
16243 int _start_mark = p->mark;
16244 void **_children = PyMem_Malloc(sizeof(void *));
16245 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016246 p->error_indicator = 1;
16247 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016249 return NULL;
16250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016251 ssize_t _children_capacity = 1;
16252 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016253 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016255 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016256 return NULL;
16257 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016258 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016259 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016260 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016261 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016262 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016263 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016264 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016265 )
16266 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016267 _res = elem;
16268 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016269 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016270 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016272 return NULL;
16273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016274 if (_n == _children_capacity) {
16275 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016276 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16277 if (!_new_children) {
16278 p->error_indicator = 1;
16279 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016281 return NULL;
16282 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016283 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016285 _children[_n++] = _res;
16286 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016288 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016289 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016292 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16293 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016294 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016295 p->error_indicator = 1;
16296 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016298 return NULL;
16299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016300 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16301 PyMem_Free(_children);
16302 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016303 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016304 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016305}
16306
Guido van Rossumc001c092020-04-30 12:12:19 -070016307// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016308static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016309_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016310{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016311 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016313 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016314 return NULL;
16315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016316 asdl_seq * _res = NULL;
16317 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016318 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016319 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016320 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016321 return NULL;
16322 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016323 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 +010016324 stmt_ty elem;
16325 asdl_seq * seq;
16326 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016327 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016328 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016329 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016330 )
16331 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016332 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 +010016333 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016334 goto done;
16335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016336 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016337 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016340 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016341 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016342 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016343 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016344}
16345
Guido van Rossumc001c092020-04-30 12:12:19 -070016346// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016347static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016348_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016349{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016350 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016353 return NULL;
16354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016355 void * _res = NULL;
16356 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016357 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016359 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016360 return NULL;
16361 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016362 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016363 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016364 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016365 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016366 )
16367 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016368 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016369 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016370 goto done;
16371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016372 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016373 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016375 }
16376 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016378 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016379 return NULL;
16380 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016381 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016382 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016383 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016384 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016385 )
16386 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016387 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016388 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016389 goto done;
16390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016391 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016392 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016395 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016396 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016397 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016398 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016399}
16400
Guido van Rossumc001c092020-04-30 12:12:19 -070016401// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016402static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016403_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016404{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016405 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016406 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016407 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016408 return NULL;
16409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016410 void * _res = NULL;
16411 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016412 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016414 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016415 return NULL;
16416 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016417 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016418 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016419 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016420 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016421 )
16422 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016423 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016424 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016425 goto done;
16426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016428 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016430 }
16431 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016434 return NULL;
16435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016436 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016437 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016438 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016439 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016440 )
16441 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016442 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016443 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016444 goto done;
16445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016446 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016447 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016449 }
16450 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016451 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016452 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016453 return NULL;
16454 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016455 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016456 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016457 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016458 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016459 )
16460 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016461 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016462 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016463 goto done;
16464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016466 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016469 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016470 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016472 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016473}
16474
Guido van Rossumc001c092020-04-30 12:12:19 -070016475// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016476static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016477_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016478{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016479 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016482 return NULL;
16483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016484 void * _res = NULL;
16485 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016486 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016489 return NULL;
16490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016491 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016492 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016493 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016494 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016495 )
16496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016497 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016498 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016499 goto done;
16500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016502 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016504 }
16505 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016507 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016508 return NULL;
16509 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016510 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016511 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016512 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016513 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016514 )
16515 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016516 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016517 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016518 goto done;
16519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016520 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016521 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016524 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016525 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016526 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016527 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016528}
16529
Guido van Rossumc001c092020-04-30 12:12:19 -070016530// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016531static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016532_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016533{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016534 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016536 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016537 return NULL;
16538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016539 void * _res = NULL;
16540 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016541 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016542 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016543 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016544 return NULL;
16545 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016546 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016547 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016548 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016549 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016550 )
16551 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016552 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016553 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016554 goto done;
16555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016556 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016557 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016559 }
16560 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016561 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016562 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016563 return NULL;
16564 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016565 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016566 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016567 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016568 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016569 )
16570 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016571 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016572 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016573 goto done;
16574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016575 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016576 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016579 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016580 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016581 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016582 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016583}
16584
Guido van Rossumc001c092020-04-30 12:12:19 -070016585// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016586static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016587_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016588{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016589 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016590 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016592 return NULL;
16593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016594 void * _res = NULL;
16595 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016596 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016599 return NULL;
16600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016601 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016602 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016603 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016604 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016605 )
16606 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016607 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016608 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016609 goto done;
16610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016611 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016612 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016614 }
16615 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016616 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016617 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016618 return NULL;
16619 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016620 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016621 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016622 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016623 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016624 )
16625 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016626 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016627 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016628 goto done;
16629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016630 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016631 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016634 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016635 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016636 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016637 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016638}
16639
Guido van Rossumc001c092020-04-30 12:12:19 -070016640// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016641static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016642_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016643{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016644 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016646 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016647 return NULL;
16648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016649 void * _res = NULL;
16650 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016651 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016652 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016653 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016654 return NULL;
16655 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016656 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016657 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016658 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016659 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016660 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016661 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016662 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016663 )
16664 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016665 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 +010016666 _res = d;
16667 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016668 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016670 return NULL;
16671 }
16672 goto done;
16673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016674 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016675 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016678 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016679 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016680 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016681 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016682}
16683
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016684// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016685static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016686_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016687{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016688 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016689 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016691 return NULL;
16692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016693 void * _res = NULL;
16694 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016695 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016696 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016697 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016698 return NULL;
16699 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016700 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016701 Token * _literal;
16702 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016703 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016704 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016705 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016706 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016707 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016708 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016709 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016710 )
16711 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016712 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 +010016713 _res = b;
16714 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016715 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016716 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016717 return NULL;
16718 }
16719 goto done;
16720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016721 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016722 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016724 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016725 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016727 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016728 return NULL;
16729 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016730 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 +030016731 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016732 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016733 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016734 )
16735 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016736 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 +030016737 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016738 goto done;
16739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016740 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016741 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016744 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016745 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016747 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016748}
16749
Guido van Rossumc001c092020-04-30 12:12:19 -070016750// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016751static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016752_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016754 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016757 return NULL;
16758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016759 void * _res = NULL;
16760 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016761 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016763 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016764 return NULL;
16765 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016766 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016767 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016768 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016769 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016770 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016771 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016772 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016773 )
16774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016775 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 +010016776 _res = d;
16777 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016780 return NULL;
16781 }
16782 goto done;
16783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016784 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016785 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016788 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016789 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016790 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016791 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016792}
16793
Guido van Rossumc001c092020-04-30 12:12:19 -070016794// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016795static asdl_seq *
16796_loop1_22_rule(Parser *p)
16797{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016798 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016801 return NULL;
16802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016803 void *_res = NULL;
16804 int _mark = p->mark;
16805 int _start_mark = p->mark;
16806 void **_children = PyMem_Malloc(sizeof(void *));
16807 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016808 p->error_indicator = 1;
16809 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016810 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016811 return NULL;
16812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016813 ssize_t _children_capacity = 1;
16814 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016815 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016816 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016817 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016818 return NULL;
16819 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016820 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016821 void *_tmp_139_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016822 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016823 (_tmp_139_var = _tmp_139_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016824 )
16825 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016826 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016827 if (_n == _children_capacity) {
16828 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016829 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16830 if (!_new_children) {
16831 p->error_indicator = 1;
16832 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016834 return NULL;
16835 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016836 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016838 _children[_n++] = _res;
16839 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016841 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016842 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016845 if (_n == 0 || p->error_indicator) {
16846 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016848 return NULL;
16849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016850 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16851 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016852 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016853 p->error_indicator = 1;
16854 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016855 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016856 return NULL;
16857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016858 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16859 PyMem_Free(_children);
16860 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016861 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016862 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016863}
16864
Guido van Rossumc001c092020-04-30 12:12:19 -070016865// _tmp_23: yield_expr | star_expressions
16866static void *
16867_tmp_23_rule(Parser *p)
16868{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016869 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016871 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016872 return NULL;
16873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016874 void * _res = NULL;
16875 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016876 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016878 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016879 return NULL;
16880 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016881 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016882 expr_ty yield_expr_var;
16883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016884 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016885 )
16886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016887 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 +010016888 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016889 goto done;
16890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016891 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016892 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016894 }
16895 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016896 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016897 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016898 return NULL;
16899 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016900 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 -070016901 expr_ty star_expressions_var;
16902 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016903 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016904 )
16905 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016906 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 +010016907 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016908 goto done;
16909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016910 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016911 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016914 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016915 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016916 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016917 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016918}
16919
16920// _tmp_24: yield_expr | star_expressions
16921static void *
16922_tmp_24_rule(Parser *p)
16923{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016924 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016925 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016926 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016927 return NULL;
16928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016929 void * _res = NULL;
16930 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016931 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016932 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016933 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016934 return NULL;
16935 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016936 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 -070016937 expr_ty yield_expr_var;
16938 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016939 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016940 )
16941 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016942 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 +010016943 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016944 goto done;
16945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016946 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016947 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016949 }
16950 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016951 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016952 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016953 return NULL;
16954 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016955 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 -070016956 expr_ty star_expressions_var;
16957 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016958 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016959 )
16960 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016961 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 +010016962 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016963 goto done;
16964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016965 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016966 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016969 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016970 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016971 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016972 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016973}
16974
16975// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016976static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016977_loop0_26_rule(Parser *p)
16978{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016979 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016980 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016981 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016982 return NULL;
16983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016984 void *_res = NULL;
16985 int _mark = p->mark;
16986 int _start_mark = p->mark;
16987 void **_children = PyMem_Malloc(sizeof(void *));
16988 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016989 p->error_indicator = 1;
16990 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016991 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016992 return NULL;
16993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016994 ssize_t _children_capacity = 1;
16995 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016996 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016998 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016999 return NULL;
17000 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017001 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017002 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017003 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017004 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017005 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017006 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017007 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017008 )
17009 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017010 _res = elem;
17011 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017012 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017013 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017014 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017015 return NULL;
17016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017017 if (_n == _children_capacity) {
17018 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17020 if (!_new_children) {
17021 p->error_indicator = 1;
17022 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017023 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017024 return NULL;
17025 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017026 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017028 _children[_n++] = _res;
17029 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017031 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017032 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017034 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017035 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17036 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017037 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017038 p->error_indicator = 1;
17039 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017040 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017041 return NULL;
17042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017043 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17044 PyMem_Free(_children);
17045 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017046 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017047 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017048}
17049
17050// _gather_25: NAME _loop0_26
17051static asdl_seq *
17052_gather_25_rule(Parser *p)
17053{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017054 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017056 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017057 return NULL;
17058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017059 asdl_seq * _res = NULL;
17060 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017061 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017062 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017063 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017064 return NULL;
17065 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017066 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 -070017067 expr_ty elem;
17068 asdl_seq * seq;
17069 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017070 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017071 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017072 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017073 )
17074 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017075 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 +010017076 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017077 goto done;
17078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017079 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017080 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017083 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017084 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017085 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017086 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017087}
17088
17089// _loop0_28: ',' NAME
17090static asdl_seq *
17091_loop0_28_rule(Parser *p)
17092{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017093 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017095 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017096 return NULL;
17097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017098 void *_res = NULL;
17099 int _mark = p->mark;
17100 int _start_mark = p->mark;
17101 void **_children = PyMem_Malloc(sizeof(void *));
17102 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017103 p->error_indicator = 1;
17104 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017105 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017106 return NULL;
17107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017108 ssize_t _children_capacity = 1;
17109 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017110 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017112 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017113 return NULL;
17114 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017115 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017116 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017117 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017118 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017119 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017120 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017121 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017122 )
17123 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017124 _res = elem;
17125 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017126 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017127 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017128 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017129 return NULL;
17130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017131 if (_n == _children_capacity) {
17132 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017133 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17134 if (!_new_children) {
17135 p->error_indicator = 1;
17136 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017137 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017138 return NULL;
17139 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017140 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017142 _children[_n++] = _res;
17143 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017144 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017145 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017146 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017149 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17150 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017151 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017152 p->error_indicator = 1;
17153 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017154 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017155 return NULL;
17156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017157 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17158 PyMem_Free(_children);
17159 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017160 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017161 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017162}
17163
17164// _gather_27: NAME _loop0_28
17165static asdl_seq *
17166_gather_27_rule(Parser *p)
17167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017168 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017170 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017171 return NULL;
17172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017173 asdl_seq * _res = NULL;
17174 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017175 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017176 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017177 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017178 return NULL;
17179 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017180 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 -070017181 expr_ty elem;
17182 asdl_seq * seq;
17183 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017184 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017185 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017186 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017187 )
17188 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017189 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 +010017190 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017191 goto done;
17192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017193 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017194 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017197 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017198 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017199 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017200 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017201}
17202
17203// _tmp_29: ',' expression
17204static void *
17205_tmp_29_rule(Parser *p)
17206{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017207 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017208 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017209 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017210 return NULL;
17211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017212 void * _res = NULL;
17213 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017214 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017217 return NULL;
17218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017219 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017220 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017221 expr_ty z;
17222 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017223 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017224 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017225 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017226 )
17227 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017228 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017229 _res = z;
17230 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017231 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017232 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017233 return NULL;
17234 }
17235 goto done;
17236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017237 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017238 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017241 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017242 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017243 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017244 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017245}
17246
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017247// _tmp_30: ';' | NEWLINE
17248static void *
17249_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017250{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017251 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017253 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017254 return NULL;
17255 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017256 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017257 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017258 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017260 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017261 return NULL;
17262 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017263 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17264 Token * _literal;
17265 if (
17266 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017267 )
17268 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017269 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17270 _res = _literal;
17271 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017273 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017274 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017276 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017277 { // NEWLINE
17278 if (p->error_indicator) {
17279 D(p->level--);
17280 return NULL;
17281 }
17282 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17283 Token * newline_var;
17284 if (
17285 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17286 )
17287 {
17288 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17289 _res = newline_var;
17290 goto done;
17291 }
17292 p->mark = _mark;
17293 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017295 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017296 _res = NULL;
17297 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017298 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017299 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017300}
17301
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017302// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017303static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017304_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017305{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017306 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017308 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017309 return NULL;
17310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017311 void *_res = NULL;
17312 int _mark = p->mark;
17313 int _start_mark = p->mark;
17314 void **_children = PyMem_Malloc(sizeof(void *));
17315 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017316 p->error_indicator = 1;
17317 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017318 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017319 return NULL;
17320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017321 ssize_t _children_capacity = 1;
17322 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017323 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017325 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017326 return NULL;
17327 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017328 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070017329 void *_tmp_140_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017330 while (
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070017331 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017332 )
17333 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070017334 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017335 if (_n == _children_capacity) {
17336 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017337 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17338 if (!_new_children) {
17339 p->error_indicator = 1;
17340 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017341 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017342 return NULL;
17343 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017344 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017346 _children[_n++] = _res;
17347 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017349 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017350 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17352 }
17353 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17354 if (!_seq) {
17355 PyMem_Free(_children);
17356 p->error_indicator = 1;
17357 PyErr_NoMemory();
17358 D(p->level--);
17359 return NULL;
17360 }
17361 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17362 PyMem_Free(_children);
17363 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17364 D(p->level--);
17365 return _seq;
17366}
17367
17368// _loop1_32: ('.' | '...')
17369static asdl_seq *
17370_loop1_32_rule(Parser *p)
17371{
17372 D(p->level++);
17373 if (p->error_indicator) {
17374 D(p->level--);
17375 return NULL;
17376 }
17377 void *_res = NULL;
17378 int _mark = p->mark;
17379 int _start_mark = p->mark;
17380 void **_children = PyMem_Malloc(sizeof(void *));
17381 if (!_children) {
17382 p->error_indicator = 1;
17383 PyErr_NoMemory();
17384 D(p->level--);
17385 return NULL;
17386 }
17387 ssize_t _children_capacity = 1;
17388 ssize_t _n = 0;
17389 { // ('.' | '...')
17390 if (p->error_indicator) {
17391 D(p->level--);
17392 return NULL;
17393 }
17394 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
17395 void *_tmp_141_var;
17396 while (
17397 (_tmp_141_var = _tmp_141_rule(p)) // '.' | '...'
17398 )
17399 {
17400 _res = _tmp_141_var;
17401 if (_n == _children_capacity) {
17402 _children_capacity *= 2;
17403 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17404 if (!_new_children) {
17405 p->error_indicator = 1;
17406 PyErr_NoMemory();
17407 D(p->level--);
17408 return NULL;
17409 }
17410 _children = _new_children;
17411 }
17412 _children[_n++] = _res;
17413 _mark = p->mark;
17414 }
17415 p->mark = _mark;
17416 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017419 if (_n == 0 || p->error_indicator) {
17420 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017421 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017422 return NULL;
17423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017424 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17425 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017426 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017427 p->error_indicator = 1;
17428 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017429 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017430 return NULL;
17431 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017432 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17433 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017434 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017435 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017436 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017437}
17438
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017439// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017440static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017441_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017442{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017443 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017444 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017445 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017446 return NULL;
17447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017448 void *_res = NULL;
17449 int _mark = p->mark;
17450 int _start_mark = p->mark;
17451 void **_children = PyMem_Malloc(sizeof(void *));
17452 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017453 p->error_indicator = 1;
17454 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017455 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017456 return NULL;
17457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017458 ssize_t _children_capacity = 1;
17459 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017460 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017461 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017462 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017463 return NULL;
17464 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017465 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 +010017466 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017467 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017468 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017469 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017470 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017471 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017472 )
17473 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017474 _res = elem;
17475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017476 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017477 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017478 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017479 return NULL;
17480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017481 if (_n == _children_capacity) {
17482 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017483 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17484 if (!_new_children) {
17485 p->error_indicator = 1;
17486 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017488 return NULL;
17489 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017490 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017492 _children[_n++] = _res;
17493 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017495 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017496 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017499 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17500 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017501 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017502 p->error_indicator = 1;
17503 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017505 return NULL;
17506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017507 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17508 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017509 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017511 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017512}
17513
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017514// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017515static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017516_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017517{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017518 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017521 return NULL;
17522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017523 asdl_seq * _res = NULL;
17524 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017525 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017527 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017528 return NULL;
17529 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017530 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 +010017531 alias_ty elem;
17532 asdl_seq * seq;
17533 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017534 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017535 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017536 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017537 )
17538 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017539 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 +010017540 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017541 goto done;
17542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017543 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017544 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017547 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017548 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017549 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017550 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017551}
17552
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017553// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017554static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017555_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017556{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017557 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017560 return NULL;
17561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017562 void * _res = NULL;
17563 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017564 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017566 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017567 return NULL;
17568 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017569 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017570 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017571 expr_ty z;
17572 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017573 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017575 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017576 )
17577 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017578 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 +010017579 _res = z;
17580 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017581 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017582 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017583 return NULL;
17584 }
17585 goto done;
17586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017587 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017588 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017591 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017592 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017593 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017594 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017595}
17596
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017597// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017598static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017599_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017600{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017601 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017604 return NULL;
17605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017606 void *_res = NULL;
17607 int _mark = p->mark;
17608 int _start_mark = p->mark;
17609 void **_children = PyMem_Malloc(sizeof(void *));
17610 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017611 p->error_indicator = 1;
17612 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017613 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017614 return NULL;
17615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017616 ssize_t _children_capacity = 1;
17617 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017618 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017621 return NULL;
17622 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017623 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 +010017624 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017625 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017626 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017627 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017628 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017629 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017630 )
17631 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017632 _res = elem;
17633 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017634 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017635 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017637 return NULL;
17638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017639 if (_n == _children_capacity) {
17640 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017641 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17642 if (!_new_children) {
17643 p->error_indicator = 1;
17644 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017645 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017646 return NULL;
17647 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017648 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017650 _children[_n++] = _res;
17651 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017653 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017654 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017657 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17658 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017659 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017660 p->error_indicator = 1;
17661 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017663 return NULL;
17664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017665 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17666 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017667 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017668 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017669 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017670}
17671
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017672// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017673static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017674_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017675{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017676 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017679 return NULL;
17680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017681 asdl_seq * _res = NULL;
17682 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017683 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017685 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017686 return NULL;
17687 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017688 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 +010017689 alias_ty elem;
17690 asdl_seq * seq;
17691 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017692 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017693 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017694 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017695 )
17696 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017697 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 +010017698 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017699 goto done;
17700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017701 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017702 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017705 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017706 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017708 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017709}
17710
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017711// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017712static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017713_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017718 return NULL;
17719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017720 void * _res = NULL;
17721 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017722 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017725 return NULL;
17726 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017727 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017728 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017729 expr_ty z;
17730 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017731 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017732 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017733 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017734 )
17735 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017736 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 +010017737 _res = z;
17738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017741 return NULL;
17742 }
17743 goto done;
17744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017745 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017746 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017753}
17754
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017755// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017756static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017757_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017762 return NULL;
17763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017764 void *_res = NULL;
17765 int _mark = p->mark;
17766 int _start_mark = p->mark;
17767 void **_children = PyMem_Malloc(sizeof(void *));
17768 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017769 p->error_indicator = 1;
17770 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017771 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017772 return NULL;
17773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017774 ssize_t _children_capacity = 1;
17775 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017776 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017779 return NULL;
17780 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017781 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017782 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017783 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017784 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017785 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017786 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017787 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017788 )
17789 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017790 _res = elem;
17791 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017792 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017793 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017795 return NULL;
17796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017797 if (_n == _children_capacity) {
17798 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17800 if (!_new_children) {
17801 p->error_indicator = 1;
17802 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017804 return NULL;
17805 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017806 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017808 _children[_n++] = _res;
17809 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017811 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017812 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017815 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17816 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017817 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017818 p->error_indicator = 1;
17819 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017821 return NULL;
17822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017823 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17824 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017825 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017826 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017827 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017828}
17829
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017830// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017831static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017832_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017833{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017834 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017836 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017837 return NULL;
17838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017839 asdl_seq * _res = NULL;
17840 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017841 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017843 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017844 return NULL;
17845 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017846 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 +010017847 withitem_ty elem;
17848 asdl_seq * seq;
17849 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017850 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017851 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017852 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017853 )
17854 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017855 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 +010017856 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017857 goto done;
17858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017859 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017860 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017863 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017864 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017865 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017866 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017867}
17868
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017869// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017870static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017871_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017872{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017873 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017876 return NULL;
17877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017878 void *_res = NULL;
17879 int _mark = p->mark;
17880 int _start_mark = p->mark;
17881 void **_children = PyMem_Malloc(sizeof(void *));
17882 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017883 p->error_indicator = 1;
17884 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017885 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017886 return NULL;
17887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017888 ssize_t _children_capacity = 1;
17889 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017890 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017893 return NULL;
17894 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017895 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017896 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017897 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017898 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017899 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017900 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017901 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017902 )
17903 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017904 _res = elem;
17905 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017906 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017907 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017909 return NULL;
17910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017911 if (_n == _children_capacity) {
17912 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017913 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17914 if (!_new_children) {
17915 p->error_indicator = 1;
17916 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017918 return NULL;
17919 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017920 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017922 _children[_n++] = _res;
17923 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017925 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017926 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017929 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17930 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017931 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017932 p->error_indicator = 1;
17933 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017934 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017935 return NULL;
17936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017937 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17938 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017939 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017940 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017941 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017942}
17943
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017944// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017945static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017946_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017947{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017948 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017949 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017951 return NULL;
17952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017953 asdl_seq * _res = NULL;
17954 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017955 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017957 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017958 return NULL;
17959 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017960 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 +010017961 withitem_ty elem;
17962 asdl_seq * seq;
17963 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017964 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017965 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017966 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017967 )
17968 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017969 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 +010017970 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017971 goto done;
17972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017973 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017974 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
17975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017977 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017978 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017979 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017980 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017981}
17982
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017983// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017984static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017985_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017986{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017987 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017989 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017990 return NULL;
17991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017992 void *_res = NULL;
17993 int _mark = p->mark;
17994 int _start_mark = p->mark;
17995 void **_children = PyMem_Malloc(sizeof(void *));
17996 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017997 p->error_indicator = 1;
17998 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017999 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018000 return NULL;
18001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018002 ssize_t _children_capacity = 1;
18003 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018004 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018005 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018006 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018007 return NULL;
18008 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018009 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018010 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018011 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018012 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018013 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018015 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018016 )
18017 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018018 _res = elem;
18019 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018020 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018021 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018022 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018023 return NULL;
18024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018025 if (_n == _children_capacity) {
18026 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018027 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18028 if (!_new_children) {
18029 p->error_indicator = 1;
18030 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018031 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018032 return NULL;
18033 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018034 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018036 _children[_n++] = _res;
18037 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018039 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018040 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018043 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18044 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018045 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018046 p->error_indicator = 1;
18047 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018048 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018049 return NULL;
18050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018051 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18052 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018053 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018054 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018055 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018056}
18057
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018058// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018059static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018060_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018061{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018062 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018063 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018064 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018065 return NULL;
18066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018067 asdl_seq * _res = NULL;
18068 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018069 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018072 return NULL;
18073 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018074 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 +030018075 withitem_ty elem;
18076 asdl_seq * seq;
18077 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018078 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018079 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018080 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018081 )
18082 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018083 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 +010018084 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018085 goto done;
18086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018087 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018088 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018091 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018092 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018093 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018094 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018095}
18096
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018097// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018098static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018099_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018100{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018101 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018102 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018103 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018104 return NULL;
18105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018106 void *_res = NULL;
18107 int _mark = p->mark;
18108 int _start_mark = p->mark;
18109 void **_children = PyMem_Malloc(sizeof(void *));
18110 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018111 p->error_indicator = 1;
18112 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018113 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018114 return NULL;
18115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018116 ssize_t _children_capacity = 1;
18117 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018118 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018121 return NULL;
18122 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018123 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018124 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018125 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018126 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018127 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018128 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018129 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018130 )
18131 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018132 _res = elem;
18133 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018134 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018135 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018136 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018137 return NULL;
18138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018139 if (_n == _children_capacity) {
18140 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018141 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18142 if (!_new_children) {
18143 p->error_indicator = 1;
18144 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018145 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018146 return NULL;
18147 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018148 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018150 _children[_n++] = _res;
18151 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018153 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018154 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018157 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18158 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018159 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018160 p->error_indicator = 1;
18161 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018162 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018163 return NULL;
18164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018165 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18166 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018167 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018168 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018169 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018170}
18171
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018172// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018173static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018174_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018175{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018176 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018177 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018178 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018179 return NULL;
18180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018181 asdl_seq * _res = NULL;
18182 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018183 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018186 return NULL;
18187 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018188 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 +030018189 withitem_ty elem;
18190 asdl_seq * seq;
18191 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018192 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018193 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018194 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018195 )
18196 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018197 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 +010018198 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018199 goto done;
18200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018201 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018202 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018205 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018206 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018207 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018208 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018209}
18210
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018211// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018212static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018213_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018214{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018215 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018218 return NULL;
18219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018220 void * _res = NULL;
18221 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018222 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018225 return NULL;
18226 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018227 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18228 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018229 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018230 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018231 )
18232 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018233 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18234 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018235 goto done;
18236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018237 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018238 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18240 }
18241 { // ')'
18242 if (p->error_indicator) {
18243 D(p->level--);
18244 return NULL;
18245 }
18246 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18247 Token * _literal;
18248 if (
18249 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18250 )
18251 {
18252 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18253 _res = _literal;
18254 goto done;
18255 }
18256 p->mark = _mark;
18257 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18259 }
18260 { // ':'
18261 if (p->error_indicator) {
18262 D(p->level--);
18263 return NULL;
18264 }
18265 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18266 Token * _literal;
18267 if (
18268 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18269 )
18270 {
18271 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18272 _res = _literal;
18273 goto done;
18274 }
18275 p->mark = _mark;
18276 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018278 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018279 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018280 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018281 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018282 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018283}
18284
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018285// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018286static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018287_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018288{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018289 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018292 return NULL;
18293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018294 void *_res = NULL;
18295 int _mark = p->mark;
18296 int _start_mark = p->mark;
18297 void **_children = PyMem_Malloc(sizeof(void *));
18298 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018299 p->error_indicator = 1;
18300 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018302 return NULL;
18303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018304 ssize_t _children_capacity = 1;
18305 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018306 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018309 return NULL;
18310 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018311 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018312 excepthandler_ty except_block_var;
18313 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018314 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018315 )
18316 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018317 _res = except_block_var;
18318 if (_n == _children_capacity) {
18319 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018320 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18321 if (!_new_children) {
18322 p->error_indicator = 1;
18323 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018325 return NULL;
18326 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018327 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018329 _children[_n++] = _res;
18330 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018332 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018333 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018336 if (_n == 0 || p->error_indicator) {
18337 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018338 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018339 return NULL;
18340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018341 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18342 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018343 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018344 p->error_indicator = 1;
18345 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018346 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018347 return NULL;
18348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018349 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18350 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018351 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018352 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018353 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018354}
18355
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018356// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018357static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018358_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018359{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018360 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018363 return NULL;
18364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018365 void * _res = NULL;
18366 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018367 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018370 return NULL;
18371 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018372 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018373 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018374 expr_ty z;
18375 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018376 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018377 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018378 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018379 )
18380 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018381 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 +010018382 _res = z;
18383 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018384 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018386 return NULL;
18387 }
18388 goto done;
18389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018390 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018391 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018394 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018395 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018396 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018397 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018398}
18399
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018400// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018401static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018402_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018403{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018404 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018407 return NULL;
18408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018409 void * _res = NULL;
18410 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018411 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018413 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018414 return NULL;
18415 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018416 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018417 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018418 expr_ty z;
18419 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018420 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018422 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018423 )
18424 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018425 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 +010018426 _res = z;
18427 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018428 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018429 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018430 return NULL;
18431 }
18432 goto done;
18433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018434 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018435 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018438 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018439 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018440 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018441 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018442}
18443
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018444// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018445static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018446_tmp_51_rule(Parser *p)
18447{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018448 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018450 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018451 return NULL;
18452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018453 void * _res = NULL;
18454 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018455 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018457 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018458 return NULL;
18459 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018460 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018461 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018462 expr_ty z;
18463 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018464 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018465 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018466 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018467 )
18468 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018469 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018470 _res = z;
18471 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018472 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018473 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018474 return NULL;
18475 }
18476 goto done;
18477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018478 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018479 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018482 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018483 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018484 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018485 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018486}
18487
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018488// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018489static void *
18490_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018491{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018492 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018494 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018495 return NULL;
18496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018497 void * _res = NULL;
18498 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018499 { // '->' expression
18500 if (p->error_indicator) {
18501 D(p->level--);
18502 return NULL;
18503 }
18504 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18505 Token * _literal;
18506 expr_ty z;
18507 if (
18508 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18509 &&
18510 (z = expression_rule(p)) // expression
18511 )
18512 {
18513 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18514 _res = z;
18515 if (_res == NULL && PyErr_Occurred()) {
18516 p->error_indicator = 1;
18517 D(p->level--);
18518 return NULL;
18519 }
18520 goto done;
18521 }
18522 p->mark = _mark;
18523 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18525 }
18526 _res = NULL;
18527 done:
18528 D(p->level--);
18529 return _res;
18530}
18531
18532// _tmp_53: NEWLINE INDENT
18533static void *
18534_tmp_53_rule(Parser *p)
18535{
18536 D(p->level++);
18537 if (p->error_indicator) {
18538 D(p->level--);
18539 return NULL;
18540 }
18541 void * _res = NULL;
18542 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018543 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018545 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018546 return NULL;
18547 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018548 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018549 Token * indent_var;
18550 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018551 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018552 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018553 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018554 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018555 )
18556 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018557 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 +010018558 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018559 goto done;
18560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018561 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018562 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018565 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018566 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018567 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018568 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018569}
18570
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018571// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018572static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018573_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018574{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018575 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018577 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018578 return NULL;
18579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018580 void *_res = NULL;
18581 int _mark = p->mark;
18582 int _start_mark = p->mark;
18583 void **_children = PyMem_Malloc(sizeof(void *));
18584 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018585 p->error_indicator = 1;
18586 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018588 return NULL;
18589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018590 ssize_t _children_capacity = 1;
18591 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018592 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018595 return NULL;
18596 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018597 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 -070018598 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018599 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018600 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018601 )
18602 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018603 _res = param_no_default_var;
18604 if (_n == _children_capacity) {
18605 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018606 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18607 if (!_new_children) {
18608 p->error_indicator = 1;
18609 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018611 return NULL;
18612 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018613 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018615 _children[_n++] = _res;
18616 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018618 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018619 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018622 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18623 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018624 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018625 p->error_indicator = 1;
18626 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018627 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018628 return NULL;
18629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018630 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18631 PyMem_Free(_children);
18632 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018633 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018634 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018635}
18636
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018637// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018638static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018639_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018640{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018641 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018643 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018644 return NULL;
18645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018646 void *_res = NULL;
18647 int _mark = p->mark;
18648 int _start_mark = p->mark;
18649 void **_children = PyMem_Malloc(sizeof(void *));
18650 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018651 p->error_indicator = 1;
18652 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018653 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018654 return NULL;
18655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018656 ssize_t _children_capacity = 1;
18657 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018658 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018659 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018660 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018661 return NULL;
18662 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018663 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 -070018664 NameDefaultPair* param_with_default_var;
18665 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018666 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018667 )
18668 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018669 _res = param_with_default_var;
18670 if (_n == _children_capacity) {
18671 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018672 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18673 if (!_new_children) {
18674 p->error_indicator = 1;
18675 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018676 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018677 return NULL;
18678 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018679 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018681 _children[_n++] = _res;
18682 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018684 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018685 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018688 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18689 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018690 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018691 p->error_indicator = 1;
18692 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018693 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018694 return NULL;
18695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018696 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18697 PyMem_Free(_children);
18698 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018699 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018700 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018701}
18702
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018703// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018704static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018705_loop0_56_rule(Parser *p)
18706{
18707 D(p->level++);
18708 if (p->error_indicator) {
18709 D(p->level--);
18710 return NULL;
18711 }
18712 void *_res = NULL;
18713 int _mark = p->mark;
18714 int _start_mark = p->mark;
18715 void **_children = PyMem_Malloc(sizeof(void *));
18716 if (!_children) {
18717 p->error_indicator = 1;
18718 PyErr_NoMemory();
18719 D(p->level--);
18720 return NULL;
18721 }
18722 ssize_t _children_capacity = 1;
18723 ssize_t _n = 0;
18724 { // param_with_default
18725 if (p->error_indicator) {
18726 D(p->level--);
18727 return NULL;
18728 }
18729 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18730 NameDefaultPair* param_with_default_var;
18731 while (
18732 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18733 )
18734 {
18735 _res = param_with_default_var;
18736 if (_n == _children_capacity) {
18737 _children_capacity *= 2;
18738 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18739 if (!_new_children) {
18740 p->error_indicator = 1;
18741 PyErr_NoMemory();
18742 D(p->level--);
18743 return NULL;
18744 }
18745 _children = _new_children;
18746 }
18747 _children[_n++] = _res;
18748 _mark = p->mark;
18749 }
18750 p->mark = _mark;
18751 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18753 }
18754 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18755 if (!_seq) {
18756 PyMem_Free(_children);
18757 p->error_indicator = 1;
18758 PyErr_NoMemory();
18759 D(p->level--);
18760 return NULL;
18761 }
18762 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18763 PyMem_Free(_children);
18764 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18765 D(p->level--);
18766 return _seq;
18767}
18768
18769// _loop1_57: param_no_default
18770static asdl_seq *
18771_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018772{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018773 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018775 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018776 return NULL;
18777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018778 void *_res = NULL;
18779 int _mark = p->mark;
18780 int _start_mark = p->mark;
18781 void **_children = PyMem_Malloc(sizeof(void *));
18782 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018783 p->error_indicator = 1;
18784 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018785 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018786 return NULL;
18787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018788 ssize_t _children_capacity = 1;
18789 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018790 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018793 return NULL;
18794 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018795 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 -070018796 arg_ty param_no_default_var;
18797 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018798 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018799 )
18800 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018801 _res = param_no_default_var;
18802 if (_n == _children_capacity) {
18803 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018804 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18805 if (!_new_children) {
18806 p->error_indicator = 1;
18807 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018809 return NULL;
18810 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018811 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018813 _children[_n++] = _res;
18814 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018816 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018817 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018820 if (_n == 0 || p->error_indicator) {
18821 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018823 return NULL;
18824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018825 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18826 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018827 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018828 p->error_indicator = 1;
18829 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018831 return NULL;
18832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018833 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18834 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018835 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018836 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018837 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018838}
18839
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018840// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018841static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018842_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018843{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018844 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018845 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018847 return NULL;
18848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018849 void *_res = NULL;
18850 int _mark = p->mark;
18851 int _start_mark = p->mark;
18852 void **_children = PyMem_Malloc(sizeof(void *));
18853 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018854 p->error_indicator = 1;
18855 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018857 return NULL;
18858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018859 ssize_t _children_capacity = 1;
18860 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018861 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018862 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018863 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018864 return NULL;
18865 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018866 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 -070018867 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018868 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018869 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018870 )
18871 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018872 _res = param_with_default_var;
18873 if (_n == _children_capacity) {
18874 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018875 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18876 if (!_new_children) {
18877 p->error_indicator = 1;
18878 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018880 return NULL;
18881 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018882 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018884 _children[_n++] = _res;
18885 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018887 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018888 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018891 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18892 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018893 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018894 p->error_indicator = 1;
18895 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018897 return NULL;
18898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018899 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18900 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018901 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018902 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018903 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018904}
18905
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018906// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018907static asdl_seq *
18908_loop1_59_rule(Parser *p)
18909{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018910 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018912 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018913 return NULL;
18914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018915 void *_res = NULL;
18916 int _mark = p->mark;
18917 int _start_mark = p->mark;
18918 void **_children = PyMem_Malloc(sizeof(void *));
18919 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018920 p->error_indicator = 1;
18921 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018922 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018923 return NULL;
18924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018925 ssize_t _children_capacity = 1;
18926 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018927 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018929 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018930 return NULL;
18931 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018932 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18933 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018934 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018935 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018936 )
18937 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018938 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018939 if (_n == _children_capacity) {
18940 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018941 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18942 if (!_new_children) {
18943 p->error_indicator = 1;
18944 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018945 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018946 return NULL;
18947 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018948 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018950 _children[_n++] = _res;
18951 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018953 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018954 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018957 if (_n == 0 || p->error_indicator) {
18958 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018959 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018960 return NULL;
18961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018962 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18963 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018964 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018965 p->error_indicator = 1;
18966 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018967 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018968 return NULL;
18969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018970 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18971 PyMem_Free(_children);
18972 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018973 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018974 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018975}
18976
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018977// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018978static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018979_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018980{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018981 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018982 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018983 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018984 return NULL;
18985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018986 void *_res = NULL;
18987 int _mark = p->mark;
18988 int _start_mark = p->mark;
18989 void **_children = PyMem_Malloc(sizeof(void *));
18990 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018991 p->error_indicator = 1;
18992 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018993 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018994 return NULL;
18995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018996 ssize_t _children_capacity = 1;
18997 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018998 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019001 return NULL;
19002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019003 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 +030019004 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019005 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019006 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019007 )
19008 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019009 _res = param_no_default_var;
19010 if (_n == _children_capacity) {
19011 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019012 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19013 if (!_new_children) {
19014 p->error_indicator = 1;
19015 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019016 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019017 return NULL;
19018 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019019 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019021 _children[_n++] = _res;
19022 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019024 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019025 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019028 if (_n == 0 || p->error_indicator) {
19029 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019030 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019031 return NULL;
19032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019033 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19034 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019035 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019036 p->error_indicator = 1;
19037 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019038 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019039 return NULL;
19040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019041 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19042 PyMem_Free(_children);
19043 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019045 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019046}
19047
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019048// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019049static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019050_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019052 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019054 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019055 return NULL;
19056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019057 void *_res = NULL;
19058 int _mark = p->mark;
19059 int _start_mark = p->mark;
19060 void **_children = PyMem_Malloc(sizeof(void *));
19061 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019062 p->error_indicator = 1;
19063 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019064 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019065 return NULL;
19066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019067 ssize_t _children_capacity = 1;
19068 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019069 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019072 return NULL;
19073 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019074 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 +030019075 arg_ty param_no_default_var;
19076 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019077 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019078 )
19079 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019080 _res = param_no_default_var;
19081 if (_n == _children_capacity) {
19082 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019083 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19084 if (!_new_children) {
19085 p->error_indicator = 1;
19086 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019087 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019088 return NULL;
19089 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019090 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019092 _children[_n++] = _res;
19093 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019095 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019096 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019099 if (_n == 0 || p->error_indicator) {
19100 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019101 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019102 return NULL;
19103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019104 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19105 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019106 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019107 p->error_indicator = 1;
19108 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019109 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019110 return NULL;
19111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019112 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19113 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019114 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019115 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019116 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019117}
19118
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019119// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019120static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019121_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019122{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019123 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019124 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019125 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019126 return NULL;
19127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019128 void *_res = NULL;
19129 int _mark = p->mark;
19130 int _start_mark = p->mark;
19131 void **_children = PyMem_Malloc(sizeof(void *));
19132 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019133 p->error_indicator = 1;
19134 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019135 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019136 return NULL;
19137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019138 ssize_t _children_capacity = 1;
19139 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019140 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019143 return NULL;
19144 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019145 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 +030019146 arg_ty param_no_default_var;
19147 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019148 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019149 )
19150 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019151 _res = param_no_default_var;
19152 if (_n == _children_capacity) {
19153 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019154 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19155 if (!_new_children) {
19156 p->error_indicator = 1;
19157 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019158 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019159 return NULL;
19160 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019161 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019163 _children[_n++] = _res;
19164 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019166 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019167 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019170 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19171 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019172 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019173 p->error_indicator = 1;
19174 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019175 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019176 return NULL;
19177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019178 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19179 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019180 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019181 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019182 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019183}
19184
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019185// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019186static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019187_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019188{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019189 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019190 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019191 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019192 return NULL;
19193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019194 void *_res = NULL;
19195 int _mark = p->mark;
19196 int _start_mark = p->mark;
19197 void **_children = PyMem_Malloc(sizeof(void *));
19198 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019199 p->error_indicator = 1;
19200 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019201 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019202 return NULL;
19203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019204 ssize_t _children_capacity = 1;
19205 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019206 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019208 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019209 return NULL;
19210 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019211 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 +030019212 NameDefaultPair* param_with_default_var;
19213 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019214 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019215 )
19216 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019217 _res = param_with_default_var;
19218 if (_n == _children_capacity) {
19219 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019220 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19221 if (!_new_children) {
19222 p->error_indicator = 1;
19223 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019224 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019225 return NULL;
19226 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019227 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019229 _children[_n++] = _res;
19230 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019232 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019233 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019236 if (_n == 0 || p->error_indicator) {
19237 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019238 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019239 return NULL;
19240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019241 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19242 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019243 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019244 p->error_indicator = 1;
19245 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019246 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019247 return NULL;
19248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019249 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19250 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019251 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019252 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019253 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019254}
19255
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019256// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019257static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019258_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019259{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019260 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019261 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019262 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019263 return NULL;
19264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019265 void *_res = NULL;
19266 int _mark = p->mark;
19267 int _start_mark = p->mark;
19268 void **_children = PyMem_Malloc(sizeof(void *));
19269 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019270 p->error_indicator = 1;
19271 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019272 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019273 return NULL;
19274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019275 ssize_t _children_capacity = 1;
19276 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019277 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019278 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019279 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019280 return NULL;
19281 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019282 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19283 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019284 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019285 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019286 )
19287 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019288 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019289 if (_n == _children_capacity) {
19290 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019291 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19292 if (!_new_children) {
19293 p->error_indicator = 1;
19294 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019295 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019296 return NULL;
19297 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019298 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019300 _children[_n++] = _res;
19301 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019303 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019304 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019307 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19308 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019309 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019310 p->error_indicator = 1;
19311 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019312 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019313 return NULL;
19314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019315 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19316 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019317 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019318 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019319 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019320}
19321
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019322// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019323static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019324_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019325{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019326 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019327 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019328 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019329 return NULL;
19330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019331 void *_res = NULL;
19332 int _mark = p->mark;
19333 int _start_mark = p->mark;
19334 void **_children = PyMem_Malloc(sizeof(void *));
19335 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019336 p->error_indicator = 1;
19337 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019338 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019339 return NULL;
19340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019341 ssize_t _children_capacity = 1;
19342 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019343 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019345 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019346 return NULL;
19347 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019348 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19349 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019350 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019351 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019352 )
19353 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019354 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019355 if (_n == _children_capacity) {
19356 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019357 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19358 if (!_new_children) {
19359 p->error_indicator = 1;
19360 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019361 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019362 return NULL;
19363 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019364 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019366 _children[_n++] = _res;
19367 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019369 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019370 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019373 if (_n == 0 || p->error_indicator) {
19374 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019375 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019376 return NULL;
19377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019378 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19379 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019380 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019381 p->error_indicator = 1;
19382 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019383 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019384 return NULL;
19385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019386 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19387 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019388 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019389 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019390 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019391}
19392
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019393// _loop0_66: param_maybe_default
19394static asdl_seq *
19395_loop0_66_rule(Parser *p)
19396{
19397 D(p->level++);
19398 if (p->error_indicator) {
19399 D(p->level--);
19400 return NULL;
19401 }
19402 void *_res = NULL;
19403 int _mark = p->mark;
19404 int _start_mark = p->mark;
19405 void **_children = PyMem_Malloc(sizeof(void *));
19406 if (!_children) {
19407 p->error_indicator = 1;
19408 PyErr_NoMemory();
19409 D(p->level--);
19410 return NULL;
19411 }
19412 ssize_t _children_capacity = 1;
19413 ssize_t _n = 0;
19414 { // param_maybe_default
19415 if (p->error_indicator) {
19416 D(p->level--);
19417 return NULL;
19418 }
19419 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19420 NameDefaultPair* param_maybe_default_var;
19421 while (
19422 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19423 )
19424 {
19425 _res = param_maybe_default_var;
19426 if (_n == _children_capacity) {
19427 _children_capacity *= 2;
19428 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19429 if (!_new_children) {
19430 p->error_indicator = 1;
19431 PyErr_NoMemory();
19432 D(p->level--);
19433 return NULL;
19434 }
19435 _children = _new_children;
19436 }
19437 _children[_n++] = _res;
19438 _mark = p->mark;
19439 }
19440 p->mark = _mark;
19441 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19443 }
19444 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19445 if (!_seq) {
19446 PyMem_Free(_children);
19447 p->error_indicator = 1;
19448 PyErr_NoMemory();
19449 D(p->level--);
19450 return NULL;
19451 }
19452 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19453 PyMem_Free(_children);
19454 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19455 D(p->level--);
19456 return _seq;
19457}
19458
19459// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019460static asdl_seq *
19461_loop1_67_rule(Parser *p)
19462{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019463 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019464 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019465 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019466 return NULL;
19467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019468 void *_res = NULL;
19469 int _mark = p->mark;
19470 int _start_mark = p->mark;
19471 void **_children = PyMem_Malloc(sizeof(void *));
19472 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019473 p->error_indicator = 1;
19474 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019475 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019476 return NULL;
19477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019478 ssize_t _children_capacity = 1;
19479 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019480 { // param_maybe_default
19481 if (p->error_indicator) {
19482 D(p->level--);
19483 return NULL;
19484 }
19485 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19486 NameDefaultPair* param_maybe_default_var;
19487 while (
19488 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19489 )
19490 {
19491 _res = param_maybe_default_var;
19492 if (_n == _children_capacity) {
19493 _children_capacity *= 2;
19494 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19495 if (!_new_children) {
19496 p->error_indicator = 1;
19497 PyErr_NoMemory();
19498 D(p->level--);
19499 return NULL;
19500 }
19501 _children = _new_children;
19502 }
19503 _children[_n++] = _res;
19504 _mark = p->mark;
19505 }
19506 p->mark = _mark;
19507 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19509 }
19510 if (_n == 0 || p->error_indicator) {
19511 PyMem_Free(_children);
19512 D(p->level--);
19513 return NULL;
19514 }
19515 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19516 if (!_seq) {
19517 PyMem_Free(_children);
19518 p->error_indicator = 1;
19519 PyErr_NoMemory();
19520 D(p->level--);
19521 return NULL;
19522 }
19523 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19524 PyMem_Free(_children);
19525 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19526 D(p->level--);
19527 return _seq;
19528}
19529
19530// _loop1_68: ('@' named_expression NEWLINE)
19531static asdl_seq *
19532_loop1_68_rule(Parser *p)
19533{
19534 D(p->level++);
19535 if (p->error_indicator) {
19536 D(p->level--);
19537 return NULL;
19538 }
19539 void *_res = NULL;
19540 int _mark = p->mark;
19541 int _start_mark = p->mark;
19542 void **_children = PyMem_Malloc(sizeof(void *));
19543 if (!_children) {
19544 p->error_indicator = 1;
19545 PyErr_NoMemory();
19546 D(p->level--);
19547 return NULL;
19548 }
19549 ssize_t _children_capacity = 1;
19550 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019551 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019554 return NULL;
19555 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019556 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
19557 void *_tmp_142_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019558 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019559 (_tmp_142_var = _tmp_142_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019560 )
19561 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019562 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019563 if (_n == _children_capacity) {
19564 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019565 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19566 if (!_new_children) {
19567 p->error_indicator = 1;
19568 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019569 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019570 return NULL;
19571 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019572 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019574 _children[_n++] = _res;
19575 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019577 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019578 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019581 if (_n == 0 || p->error_indicator) {
19582 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019583 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019584 return NULL;
19585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019586 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19587 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019588 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019589 p->error_indicator = 1;
19590 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019591 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019592 return NULL;
19593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019594 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19595 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019596 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019597 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019598 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019599}
19600
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019601// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019602static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019603_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019604{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019605 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019608 return NULL;
19609 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019610 void * _res = NULL;
19611 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019612 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019614 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019615 return NULL;
19616 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019617 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019618 Token * _literal;
19619 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019620 void *z;
19621 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019622 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019624 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019625 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019626 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019627 )
19628 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019629 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019630 _res = z;
19631 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019632 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019633 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019634 return NULL;
19635 }
19636 goto done;
19637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019638 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019639 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019642 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019643 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019644 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019645 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019646}
19647
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019648// _loop0_71: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019649static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019650_loop0_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019651{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019652 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019653 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019654 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019655 return NULL;
19656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019657 void *_res = NULL;
19658 int _mark = p->mark;
19659 int _start_mark = p->mark;
19660 void **_children = PyMem_Malloc(sizeof(void *));
19661 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019662 p->error_indicator = 1;
19663 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019665 return NULL;
19666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019667 ssize_t _children_capacity = 1;
19668 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019669 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019672 return NULL;
19673 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019674 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019675 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019676 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019677 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019678 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019679 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019680 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019681 )
19682 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019683 _res = elem;
19684 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019685 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019686 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019687 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019688 return NULL;
19689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019690 if (_n == _children_capacity) {
19691 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019692 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19693 if (!_new_children) {
19694 p->error_indicator = 1;
19695 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019697 return NULL;
19698 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019699 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019701 _children[_n++] = _res;
19702 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019704 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019705 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019708 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19709 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019710 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019711 p->error_indicator = 1;
19712 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019714 return NULL;
19715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019716 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19717 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019718 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019719 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019720 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019721}
19722
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019723// _gather_70: star_expression _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019724static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019725_gather_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019726{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019727 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019729 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019730 return NULL;
19731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019732 asdl_seq * _res = NULL;
19733 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019734 { // star_expression _loop0_71
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019737 return NULL;
19738 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019739 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 +010019740 expr_ty elem;
19741 asdl_seq * seq;
19742 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019743 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019744 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019745 (seq = _loop0_71_rule(p)) // _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019746 )
19747 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019748 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 +010019749 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019750 goto done;
19751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019752 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019753 D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
19754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019756 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019757 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019758 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019759 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019760}
19761
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019762// _loop1_72: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019763static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019764_loop1_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019765{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019766 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019769 return NULL;
19770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019771 void *_res = NULL;
19772 int _mark = p->mark;
19773 int _start_mark = p->mark;
19774 void **_children = PyMem_Malloc(sizeof(void *));
19775 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019776 p->error_indicator = 1;
19777 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019779 return NULL;
19780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019781 ssize_t _children_capacity = 1;
19782 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019783 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019785 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019786 return NULL;
19787 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019788 D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
19789 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019790 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019791 (_tmp_143_var = _tmp_143_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019792 )
19793 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019794 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019795 if (_n == _children_capacity) {
19796 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019797 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19798 if (!_new_children) {
19799 p->error_indicator = 1;
19800 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019802 return NULL;
19803 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019804 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019806 _children[_n++] = _res;
19807 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019809 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019810 D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019813 if (_n == 0 || p->error_indicator) {
19814 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019815 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019816 return NULL;
19817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019818 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19819 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019820 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019821 p->error_indicator = 1;
19822 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019823 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019824 return NULL;
19825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019826 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19827 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019828 _PyPegen_insert_memo(p, _start_mark, _loop1_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019830 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019831}
19832
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019833// _loop0_74: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019834static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019835_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019836{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019837 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019839 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019840 return NULL;
19841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019842 void *_res = NULL;
19843 int _mark = p->mark;
19844 int _start_mark = p->mark;
19845 void **_children = PyMem_Malloc(sizeof(void *));
19846 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019847 p->error_indicator = 1;
19848 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019850 return NULL;
19851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019852 ssize_t _children_capacity = 1;
19853 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019854 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019857 return NULL;
19858 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019859 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 +010019860 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019861 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019862 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019863 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019864 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019865 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019866 )
19867 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019868 _res = elem;
19869 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019870 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019871 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019872 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019873 return NULL;
19874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019875 if (_n == _children_capacity) {
19876 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019877 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19878 if (!_new_children) {
19879 p->error_indicator = 1;
19880 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019881 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019882 return NULL;
19883 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019884 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019886 _children[_n++] = _res;
19887 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019889 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019890 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019893 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19894 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019895 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019896 p->error_indicator = 1;
19897 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019899 return NULL;
19900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019901 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19902 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019903 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019904 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019905 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019906}
19907
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019908// _gather_73: star_named_expression _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019909static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019910_gather_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019911{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019912 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019913 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019915 return NULL;
19916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019917 asdl_seq * _res = NULL;
19918 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019919 { // star_named_expression _loop0_74
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019921 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019922 return NULL;
19923 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019924 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 +010019925 expr_ty elem;
19926 asdl_seq * seq;
19927 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019928 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019929 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019930 (seq = _loop0_74_rule(p)) // _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019931 )
19932 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019933 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 +010019934 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019935 goto done;
19936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019937 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019938 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
19939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019941 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019942 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019943 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019944 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019945}
19946
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019947// _loop1_75: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019948static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019949_loop1_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019950{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019951 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019954 return NULL;
19955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019956 void *_res = NULL;
19957 int _mark = p->mark;
19958 int _start_mark = p->mark;
19959 void **_children = PyMem_Malloc(sizeof(void *));
19960 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019961 p->error_indicator = 1;
19962 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019963 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019964 return NULL;
19965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019966 ssize_t _children_capacity = 1;
19967 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019968 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019970 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019971 return NULL;
19972 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019973 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
19974 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019975 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019976 (_tmp_144_var = _tmp_144_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019977 )
19978 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019979 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019980 if (_n == _children_capacity) {
19981 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019982 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19983 if (!_new_children) {
19984 p->error_indicator = 1;
19985 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019987 return NULL;
19988 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019989 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019991 _children[_n++] = _res;
19992 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019994 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019995 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019998 if (_n == 0 || p->error_indicator) {
19999 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020001 return NULL;
20002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020003 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20004 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020005 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020006 p->error_indicator = 1;
20007 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020009 return NULL;
20010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020011 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20012 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020013 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020015 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020016}
20017
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020018// _loop0_76: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020019static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020020_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020021{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020022 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020025 return NULL;
20026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020027 void *_res = NULL;
20028 int _mark = p->mark;
20029 int _start_mark = p->mark;
20030 void **_children = PyMem_Malloc(sizeof(void *));
20031 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020032 p->error_indicator = 1;
20033 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020034 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020035 return NULL;
20036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020037 ssize_t _children_capacity = 1;
20038 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020039 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020041 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020042 return NULL;
20043 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020044 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 -070020045 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020046 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020047 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020048 )
20049 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020050 _res = lambda_param_no_default_var;
20051 if (_n == _children_capacity) {
20052 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020053 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20054 if (!_new_children) {
20055 p->error_indicator = 1;
20056 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020057 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020058 return NULL;
20059 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020060 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020062 _children[_n++] = _res;
20063 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020065 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020066 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020069 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20070 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020071 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020072 p->error_indicator = 1;
20073 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020074 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020075 return NULL;
20076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020077 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20078 PyMem_Free(_children);
20079 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020080 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020081 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020082}
20083
Guido van Rossum3941d972020-05-01 09:42:03 -070020084// _loop0_77: lambda_param_with_default
20085static asdl_seq *
20086_loop0_77_rule(Parser *p)
20087{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020088 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020090 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020091 return NULL;
20092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020093 void *_res = NULL;
20094 int _mark = p->mark;
20095 int _start_mark = p->mark;
20096 void **_children = PyMem_Malloc(sizeof(void *));
20097 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020098 p->error_indicator = 1;
20099 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020100 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020101 return NULL;
20102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020103 ssize_t _children_capacity = 1;
20104 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020105 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020108 return NULL;
20109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020110 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 -070020111 NameDefaultPair* lambda_param_with_default_var;
20112 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020113 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020114 )
20115 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020116 _res = lambda_param_with_default_var;
20117 if (_n == _children_capacity) {
20118 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020119 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20120 if (!_new_children) {
20121 p->error_indicator = 1;
20122 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020123 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020124 return NULL;
20125 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020126 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020128 _children[_n++] = _res;
20129 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020131 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020132 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
20133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020135 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20136 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020137 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020138 p->error_indicator = 1;
20139 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020140 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020141 return NULL;
20142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020143 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20144 PyMem_Free(_children);
20145 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020146 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020147 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020148}
20149
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020150// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020151static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020152_loop0_78_rule(Parser *p)
20153{
20154 D(p->level++);
20155 if (p->error_indicator) {
20156 D(p->level--);
20157 return NULL;
20158 }
20159 void *_res = NULL;
20160 int _mark = p->mark;
20161 int _start_mark = p->mark;
20162 void **_children = PyMem_Malloc(sizeof(void *));
20163 if (!_children) {
20164 p->error_indicator = 1;
20165 PyErr_NoMemory();
20166 D(p->level--);
20167 return NULL;
20168 }
20169 ssize_t _children_capacity = 1;
20170 ssize_t _n = 0;
20171 { // lambda_param_with_default
20172 if (p->error_indicator) {
20173 D(p->level--);
20174 return NULL;
20175 }
20176 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20177 NameDefaultPair* lambda_param_with_default_var;
20178 while (
20179 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20180 )
20181 {
20182 _res = lambda_param_with_default_var;
20183 if (_n == _children_capacity) {
20184 _children_capacity *= 2;
20185 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20186 if (!_new_children) {
20187 p->error_indicator = 1;
20188 PyErr_NoMemory();
20189 D(p->level--);
20190 return NULL;
20191 }
20192 _children = _new_children;
20193 }
20194 _children[_n++] = _res;
20195 _mark = p->mark;
20196 }
20197 p->mark = _mark;
20198 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20200 }
20201 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20202 if (!_seq) {
20203 PyMem_Free(_children);
20204 p->error_indicator = 1;
20205 PyErr_NoMemory();
20206 D(p->level--);
20207 return NULL;
20208 }
20209 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20210 PyMem_Free(_children);
20211 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20212 D(p->level--);
20213 return _seq;
20214}
20215
20216// _loop1_79: lambda_param_no_default
20217static asdl_seq *
20218_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020219{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020220 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020222 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020223 return NULL;
20224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020225 void *_res = NULL;
20226 int _mark = p->mark;
20227 int _start_mark = p->mark;
20228 void **_children = PyMem_Malloc(sizeof(void *));
20229 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020230 p->error_indicator = 1;
20231 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020232 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020233 return NULL;
20234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020235 ssize_t _children_capacity = 1;
20236 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020237 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020239 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020240 return NULL;
20241 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020242 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 -070020243 arg_ty lambda_param_no_default_var;
20244 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020245 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020246 )
20247 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020248 _res = lambda_param_no_default_var;
20249 if (_n == _children_capacity) {
20250 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20252 if (!_new_children) {
20253 p->error_indicator = 1;
20254 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020255 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020256 return NULL;
20257 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020258 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020260 _children[_n++] = _res;
20261 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020263 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020264 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020267 if (_n == 0 || p->error_indicator) {
20268 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020269 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020270 return NULL;
20271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020272 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20273 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020274 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020275 p->error_indicator = 1;
20276 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020277 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020278 return NULL;
20279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020280 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20281 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020282 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020283 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020284 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020285}
20286
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020287// _loop0_80: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020288static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020289_loop0_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020290{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020291 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020293 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020294 return NULL;
20295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020296 void *_res = NULL;
20297 int _mark = p->mark;
20298 int _start_mark = p->mark;
20299 void **_children = PyMem_Malloc(sizeof(void *));
20300 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020301 p->error_indicator = 1;
20302 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020303 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020304 return NULL;
20305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020306 ssize_t _children_capacity = 1;
20307 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020308 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020310 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020311 return NULL;
20312 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020313 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 -070020314 NameDefaultPair* lambda_param_with_default_var;
20315 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020316 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020317 )
20318 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020319 _res = lambda_param_with_default_var;
20320 if (_n == _children_capacity) {
20321 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020322 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20323 if (!_new_children) {
20324 p->error_indicator = 1;
20325 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020326 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020327 return NULL;
20328 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020329 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020331 _children[_n++] = _res;
20332 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020334 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020335 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020338 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20339 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020340 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020341 p->error_indicator = 1;
20342 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020343 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020344 return NULL;
20345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020346 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20347 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020348 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020349 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020350 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020351}
20352
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020353// _loop1_81: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020354static asdl_seq *
20355_loop1_81_rule(Parser *p)
20356{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020357 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020359 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020360 return NULL;
20361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020362 void *_res = NULL;
20363 int _mark = p->mark;
20364 int _start_mark = p->mark;
20365 void **_children = PyMem_Malloc(sizeof(void *));
20366 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020367 p->error_indicator = 1;
20368 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020369 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020370 return NULL;
20371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020372 ssize_t _children_capacity = 1;
20373 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020374 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020375 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020376 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020377 return NULL;
20378 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020379 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20380 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020381 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020382 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020383 )
20384 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020385 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020386 if (_n == _children_capacity) {
20387 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020388 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20389 if (!_new_children) {
20390 p->error_indicator = 1;
20391 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020392 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020393 return NULL;
20394 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020395 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020397 _children[_n++] = _res;
20398 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020400 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020401 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020404 if (_n == 0 || p->error_indicator) {
20405 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020406 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020407 return NULL;
20408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020409 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20410 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020411 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020412 p->error_indicator = 1;
20413 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020414 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020415 return NULL;
20416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020417 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20418 PyMem_Free(_children);
20419 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020420 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020421 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020422}
20423
20424// _loop1_82: lambda_param_no_default
20425static asdl_seq *
20426_loop1_82_rule(Parser *p)
20427{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020428 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020429 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020430 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020431 return NULL;
20432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020433 void *_res = NULL;
20434 int _mark = p->mark;
20435 int _start_mark = p->mark;
20436 void **_children = PyMem_Malloc(sizeof(void *));
20437 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020438 p->error_indicator = 1;
20439 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020440 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020441 return NULL;
20442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020443 ssize_t _children_capacity = 1;
20444 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020445 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020446 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020447 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020448 return NULL;
20449 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020450 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 -070020451 arg_ty lambda_param_no_default_var;
20452 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020453 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020454 )
20455 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020456 _res = lambda_param_no_default_var;
20457 if (_n == _children_capacity) {
20458 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020459 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20460 if (!_new_children) {
20461 p->error_indicator = 1;
20462 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020463 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020464 return NULL;
20465 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020466 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020468 _children[_n++] = _res;
20469 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020471 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020472 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020475 if (_n == 0 || p->error_indicator) {
20476 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020477 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020478 return NULL;
20479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020480 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20481 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020482 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020483 p->error_indicator = 1;
20484 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020485 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020486 return NULL;
20487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020488 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20489 PyMem_Free(_children);
20490 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020492 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020493}
20494
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020495// _loop1_83: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020496static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020497_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020498{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020499 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020501 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020502 return NULL;
20503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020504 void *_res = NULL;
20505 int _mark = p->mark;
20506 int _start_mark = p->mark;
20507 void **_children = PyMem_Malloc(sizeof(void *));
20508 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020509 p->error_indicator = 1;
20510 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020511 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020512 return NULL;
20513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020514 ssize_t _children_capacity = 1;
20515 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020516 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020518 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020519 return NULL;
20520 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020521 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 -070020522 arg_ty lambda_param_no_default_var;
20523 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020524 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020525 )
20526 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020527 _res = lambda_param_no_default_var;
20528 if (_n == _children_capacity) {
20529 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020530 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20531 if (!_new_children) {
20532 p->error_indicator = 1;
20533 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020534 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020535 return NULL;
20536 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020537 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020539 _children[_n++] = _res;
20540 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020542 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020543 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020546 if (_n == 0 || p->error_indicator) {
20547 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020548 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020549 return NULL;
20550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020551 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20552 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020553 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020554 p->error_indicator = 1;
20555 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020556 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020557 return NULL;
20558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020559 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20560 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020561 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020562 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020563 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020564}
20565
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020566// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020567static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020568_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020569{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020570 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020572 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020573 return NULL;
20574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020575 void *_res = NULL;
20576 int _mark = p->mark;
20577 int _start_mark = p->mark;
20578 void **_children = PyMem_Malloc(sizeof(void *));
20579 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020580 p->error_indicator = 1;
20581 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020582 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020583 return NULL;
20584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020585 ssize_t _children_capacity = 1;
20586 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020587 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020589 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020590 return NULL;
20591 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020592 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 -070020593 arg_ty lambda_param_no_default_var;
20594 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020595 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020596 )
20597 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020598 _res = lambda_param_no_default_var;
20599 if (_n == _children_capacity) {
20600 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020601 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20602 if (!_new_children) {
20603 p->error_indicator = 1;
20604 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020605 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020606 return NULL;
20607 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020608 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020609 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020610 _children[_n++] = _res;
20611 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020613 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020614 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020617 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20618 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020619 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020620 p->error_indicator = 1;
20621 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020622 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020623 return NULL;
20624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020625 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20626 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020627 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020628 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020629 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020630}
20631
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020632// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020633static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020634_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020635{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020636 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020639 return NULL;
20640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020641 void *_res = NULL;
20642 int _mark = p->mark;
20643 int _start_mark = p->mark;
20644 void **_children = PyMem_Malloc(sizeof(void *));
20645 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020646 p->error_indicator = 1;
20647 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020648 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020649 return NULL;
20650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020651 ssize_t _children_capacity = 1;
20652 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020653 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020655 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020656 return NULL;
20657 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020658 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 -070020659 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020660 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020661 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020662 )
20663 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020664 _res = lambda_param_with_default_var;
20665 if (_n == _children_capacity) {
20666 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020667 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20668 if (!_new_children) {
20669 p->error_indicator = 1;
20670 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020672 return NULL;
20673 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020674 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020676 _children[_n++] = _res;
20677 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020679 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020680 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020683 if (_n == 0 || p->error_indicator) {
20684 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020685 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020686 return NULL;
20687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020688 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20689 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020690 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020691 p->error_indicator = 1;
20692 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020693 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020694 return NULL;
20695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020696 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20697 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020698 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020699 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020700 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020701}
20702
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020703// _loop0_86: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020704static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020705_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020706{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020707 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020710 return NULL;
20711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020712 void *_res = NULL;
20713 int _mark = p->mark;
20714 int _start_mark = p->mark;
20715 void **_children = PyMem_Malloc(sizeof(void *));
20716 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020717 p->error_indicator = 1;
20718 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020720 return NULL;
20721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020722 ssize_t _children_capacity = 1;
20723 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020724 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020727 return NULL;
20728 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020729 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20730 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020731 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020732 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020733 )
20734 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020735 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020736 if (_n == _children_capacity) {
20737 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020738 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20739 if (!_new_children) {
20740 p->error_indicator = 1;
20741 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020743 return NULL;
20744 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020745 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020747 _children[_n++] = _res;
20748 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020750 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020751 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
20752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020754 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20755 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020756 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020757 p->error_indicator = 1;
20758 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020760 return NULL;
20761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020762 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20763 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020764 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020765 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020766 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020767}
20768
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020769// _loop1_87: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020770static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020771_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020772{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020773 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020776 return NULL;
20777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020778 void *_res = NULL;
20779 int _mark = p->mark;
20780 int _start_mark = p->mark;
20781 void **_children = PyMem_Malloc(sizeof(void *));
20782 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020783 p->error_indicator = 1;
20784 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020786 return NULL;
20787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020788 ssize_t _children_capacity = 1;
20789 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020790 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020793 return NULL;
20794 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020795 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20796 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020797 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020798 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020799 )
20800 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020801 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020802 if (_n == _children_capacity) {
20803 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020804 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20805 if (!_new_children) {
20806 p->error_indicator = 1;
20807 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020809 return NULL;
20810 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020811 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020813 _children[_n++] = _res;
20814 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020816 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020817 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
20818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020820 if (_n == 0 || p->error_indicator) {
20821 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020822 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020823 return NULL;
20824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020825 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20826 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020827 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020828 p->error_indicator = 1;
20829 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020831 return NULL;
20832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020833 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20834 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020835 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020836 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020837 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020838}
20839
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020840// _loop0_88: lambda_param_maybe_default
20841static asdl_seq *
20842_loop0_88_rule(Parser *p)
20843{
20844 D(p->level++);
20845 if (p->error_indicator) {
20846 D(p->level--);
20847 return NULL;
20848 }
20849 void *_res = NULL;
20850 int _mark = p->mark;
20851 int _start_mark = p->mark;
20852 void **_children = PyMem_Malloc(sizeof(void *));
20853 if (!_children) {
20854 p->error_indicator = 1;
20855 PyErr_NoMemory();
20856 D(p->level--);
20857 return NULL;
20858 }
20859 ssize_t _children_capacity = 1;
20860 ssize_t _n = 0;
20861 { // lambda_param_maybe_default
20862 if (p->error_indicator) {
20863 D(p->level--);
20864 return NULL;
20865 }
20866 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20867 NameDefaultPair* lambda_param_maybe_default_var;
20868 while (
20869 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20870 )
20871 {
20872 _res = lambda_param_maybe_default_var;
20873 if (_n == _children_capacity) {
20874 _children_capacity *= 2;
20875 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20876 if (!_new_children) {
20877 p->error_indicator = 1;
20878 PyErr_NoMemory();
20879 D(p->level--);
20880 return NULL;
20881 }
20882 _children = _new_children;
20883 }
20884 _children[_n++] = _res;
20885 _mark = p->mark;
20886 }
20887 p->mark = _mark;
20888 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
20889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20890 }
20891 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20892 if (!_seq) {
20893 PyMem_Free(_children);
20894 p->error_indicator = 1;
20895 PyErr_NoMemory();
20896 D(p->level--);
20897 return NULL;
20898 }
20899 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20900 PyMem_Free(_children);
20901 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
20902 D(p->level--);
20903 return _seq;
20904}
20905
20906// _loop1_89: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020907static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020908_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020909{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020910 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020912 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020913 return NULL;
20914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020915 void *_res = NULL;
20916 int _mark = p->mark;
20917 int _start_mark = p->mark;
20918 void **_children = PyMem_Malloc(sizeof(void *));
20919 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020920 p->error_indicator = 1;
20921 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020922 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020923 return NULL;
20924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020925 ssize_t _children_capacity = 1;
20926 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020927 { // lambda_param_maybe_default
20928 if (p->error_indicator) {
20929 D(p->level--);
20930 return NULL;
20931 }
20932 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20933 NameDefaultPair* lambda_param_maybe_default_var;
20934 while (
20935 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20936 )
20937 {
20938 _res = lambda_param_maybe_default_var;
20939 if (_n == _children_capacity) {
20940 _children_capacity *= 2;
20941 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20942 if (!_new_children) {
20943 p->error_indicator = 1;
20944 PyErr_NoMemory();
20945 D(p->level--);
20946 return NULL;
20947 }
20948 _children = _new_children;
20949 }
20950 _children[_n++] = _res;
20951 _mark = p->mark;
20952 }
20953 p->mark = _mark;
20954 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
20955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20956 }
20957 if (_n == 0 || p->error_indicator) {
20958 PyMem_Free(_children);
20959 D(p->level--);
20960 return NULL;
20961 }
20962 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20963 if (!_seq) {
20964 PyMem_Free(_children);
20965 p->error_indicator = 1;
20966 PyErr_NoMemory();
20967 D(p->level--);
20968 return NULL;
20969 }
20970 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20971 PyMem_Free(_children);
20972 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
20973 D(p->level--);
20974 return _seq;
20975}
20976
20977// _loop1_90: ('or' conjunction)
20978static asdl_seq *
20979_loop1_90_rule(Parser *p)
20980{
20981 D(p->level++);
20982 if (p->error_indicator) {
20983 D(p->level--);
20984 return NULL;
20985 }
20986 void *_res = NULL;
20987 int _mark = p->mark;
20988 int _start_mark = p->mark;
20989 void **_children = PyMem_Malloc(sizeof(void *));
20990 if (!_children) {
20991 p->error_indicator = 1;
20992 PyErr_NoMemory();
20993 D(p->level--);
20994 return NULL;
20995 }
20996 ssize_t _children_capacity = 1;
20997 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020998 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021001 return NULL;
21002 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021003 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
21004 void *_tmp_145_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021005 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021006 (_tmp_145_var = _tmp_145_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021007 )
21008 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021009 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021010 if (_n == _children_capacity) {
21011 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021012 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21013 if (!_new_children) {
21014 p->error_indicator = 1;
21015 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021017 return NULL;
21018 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021019 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021021 _children[_n++] = _res;
21022 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021024 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021025 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021028 if (_n == 0 || p->error_indicator) {
21029 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021030 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021031 return NULL;
21032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021033 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21034 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021035 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021036 p->error_indicator = 1;
21037 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021038 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021039 return NULL;
21040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021041 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21042 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021043 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021045 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021046}
21047
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021048// _loop1_91: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021049static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021050_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021052 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021055 return NULL;
21056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021057 void *_res = NULL;
21058 int _mark = p->mark;
21059 int _start_mark = p->mark;
21060 void **_children = PyMem_Malloc(sizeof(void *));
21061 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021062 p->error_indicator = 1;
21063 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021064 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021065 return NULL;
21066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021067 ssize_t _children_capacity = 1;
21068 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021069 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021072 return NULL;
21073 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021074 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
21075 void *_tmp_146_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021076 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021077 (_tmp_146_var = _tmp_146_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021078 )
21079 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021080 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021081 if (_n == _children_capacity) {
21082 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021083 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21084 if (!_new_children) {
21085 p->error_indicator = 1;
21086 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021088 return NULL;
21089 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021090 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021092 _children[_n++] = _res;
21093 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021095 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021096 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021098 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021099 if (_n == 0 || p->error_indicator) {
21100 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021101 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021102 return NULL;
21103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021104 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21105 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021106 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021107 p->error_indicator = 1;
21108 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021109 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021110 return NULL;
21111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021112 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21113 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021114 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021115 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021116 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021117}
21118
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021119// _loop1_92: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021120static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021121_loop1_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021122{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021123 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021124 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021126 return NULL;
21127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021128 void *_res = NULL;
21129 int _mark = p->mark;
21130 int _start_mark = p->mark;
21131 void **_children = PyMem_Malloc(sizeof(void *));
21132 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021133 p->error_indicator = 1;
21134 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021135 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021136 return NULL;
21137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021138 ssize_t _children_capacity = 1;
21139 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021140 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021143 return NULL;
21144 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021145 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 +010021146 CmpopExprPair* compare_op_bitwise_or_pair_var;
21147 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021148 (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 +010021149 )
21150 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021151 _res = compare_op_bitwise_or_pair_var;
21152 if (_n == _children_capacity) {
21153 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021154 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21155 if (!_new_children) {
21156 p->error_indicator = 1;
21157 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021159 return NULL;
21160 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021161 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021163 _children[_n++] = _res;
21164 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021166 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021167 D(fprintf(stderr, "%*c%s _loop1_92[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021170 if (_n == 0 || p->error_indicator) {
21171 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021172 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021173 return NULL;
21174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021175 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21176 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021177 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021178 p->error_indicator = 1;
21179 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021180 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021181 return NULL;
21182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021183 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21184 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021185 _PyPegen_insert_memo(p, _start_mark, _loop1_92_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021186 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021187 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021188}
21189
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021190// _tmp_93: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021191static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021192_tmp_93_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021193{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021194 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021195 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021196 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021197 return NULL;
21198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021199 void * _res = NULL;
21200 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021201 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021202 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021203 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021204 return NULL;
21205 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021206 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021207 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021208 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021209 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021210 )
21211 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021212 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021213 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
21214 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021215 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021216 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021217 return NULL;
21218 }
21219 goto done;
21220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021221 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021222 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021225 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021226 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021227 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021228 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021229}
21230
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021231// _loop0_95: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021232static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021233_loop0_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021234{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021235 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021236 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021238 return NULL;
21239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021240 void *_res = NULL;
21241 int _mark = p->mark;
21242 int _start_mark = p->mark;
21243 void **_children = PyMem_Malloc(sizeof(void *));
21244 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021245 p->error_indicator = 1;
21246 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021247 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021248 return NULL;
21249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021250 ssize_t _children_capacity = 1;
21251 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021252 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021254 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021255 return NULL;
21256 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021257 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021258 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021259 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021260 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021262 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021263 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021264 )
21265 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021266 _res = elem;
21267 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021268 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021269 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021270 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021271 return NULL;
21272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021273 if (_n == _children_capacity) {
21274 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021275 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21276 if (!_new_children) {
21277 p->error_indicator = 1;
21278 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021280 return NULL;
21281 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021282 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021284 _children[_n++] = _res;
21285 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021287 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021288 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021291 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21292 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021293 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021294 p->error_indicator = 1;
21295 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021297 return NULL;
21298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021299 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21300 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021301 _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021303 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021304}
21305
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021306// _gather_94: slice _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021307static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021308_gather_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021310 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021313 return NULL;
21314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021315 asdl_seq * _res = NULL;
21316 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021317 { // slice _loop0_95
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021320 return NULL;
21321 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021322 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 +010021323 expr_ty elem;
21324 asdl_seq * seq;
21325 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021326 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021327 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021328 (seq = _loop0_95_rule(p)) // _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021329 )
21330 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021331 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 +010021332 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021333 goto done;
21334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021335 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021336 D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ',
21337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021339 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021340 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021341 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021342 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021343}
21344
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021345// _tmp_96: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021346static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021347_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021348{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021349 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021350 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021351 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021352 return NULL;
21353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021354 void * _res = NULL;
21355 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021356 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021357 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021358 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021359 return NULL;
21360 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021361 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021362 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021363 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021364 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021365 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021366 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021367 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021368 )
21369 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021370 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021371 _res = d;
21372 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021373 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021375 return NULL;
21376 }
21377 goto done;
21378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021379 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021380 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021383 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021384 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021385 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021386 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021387}
21388
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021389// _tmp_97: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021390static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021391_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021392{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021393 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021396 return NULL;
21397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021398 void * _res = NULL;
21399 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021400 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021402 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021403 return NULL;
21404 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021405 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021406 expr_ty tuple_var;
21407 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021408 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021409 )
21410 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021411 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021412 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021413 goto done;
21414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021415 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021416 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021418 }
21419 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021420 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021421 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021422 return NULL;
21423 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021424 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021425 expr_ty group_var;
21426 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021427 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021428 )
21429 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021430 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021431 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021432 goto done;
21433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021434 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021435 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021437 }
21438 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021441 return NULL;
21442 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021443 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021444 expr_ty genexp_var;
21445 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021446 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021447 )
21448 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021449 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021450 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021451 goto done;
21452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021453 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021454 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021457 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021458 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021459 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021460 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021461}
21462
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021463// _tmp_98: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021464static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021465_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021466{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021467 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021470 return NULL;
21471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021472 void * _res = NULL;
21473 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021474 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021476 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021477 return NULL;
21478 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021479 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021480 expr_ty list_var;
21481 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021482 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021483 )
21484 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021485 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021486 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021487 goto done;
21488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021489 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021490 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021492 }
21493 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021494 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021495 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021496 return NULL;
21497 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021498 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021499 expr_ty listcomp_var;
21500 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021501 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021502 )
21503 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021504 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021505 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021506 goto done;
21507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021508 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021509 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021512 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021513 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021514 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021515 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021516}
21517
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021518// _tmp_99: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021519static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021520_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021521{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021522 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021525 return NULL;
21526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021527 void * _res = NULL;
21528 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021529 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021532 return NULL;
21533 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021534 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021535 expr_ty dict_var;
21536 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021537 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021538 )
21539 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021540 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021541 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021542 goto done;
21543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021544 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021545 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021547 }
21548 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021549 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021550 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021551 return NULL;
21552 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021553 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021554 expr_ty set_var;
21555 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021556 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021557 )
21558 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021559 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021560 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021561 goto done;
21562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021563 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021564 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021566 }
21567 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021570 return NULL;
21571 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021572 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021573 expr_ty dictcomp_var;
21574 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021575 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021576 )
21577 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021578 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021579 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021580 goto done;
21581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021582 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021583 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021585 }
21586 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021587 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021588 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021589 return NULL;
21590 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021591 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021592 expr_ty setcomp_var;
21593 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021594 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021595 )
21596 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021597 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021598 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021599 goto done;
21600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021601 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021602 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021605 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021606 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021607 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021608 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021609}
21610
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021611// _loop1_100: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021612static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021613_loop1_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021614{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021615 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021616 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021617 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021618 return NULL;
21619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021620 void *_res = NULL;
21621 int _mark = p->mark;
21622 int _start_mark = p->mark;
21623 void **_children = PyMem_Malloc(sizeof(void *));
21624 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021625 p->error_indicator = 1;
21626 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021627 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021628 return NULL;
21629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021630 ssize_t _children_capacity = 1;
21631 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021632 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021633 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021634 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021635 return NULL;
21636 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021637 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021638 expr_ty string_var;
21639 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021640 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021641 )
21642 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021643 _res = string_var;
21644 if (_n == _children_capacity) {
21645 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021646 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21647 if (!_new_children) {
21648 p->error_indicator = 1;
21649 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021650 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021651 return NULL;
21652 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021653 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021655 _children[_n++] = _res;
21656 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021658 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021659 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021662 if (_n == 0 || p->error_indicator) {
21663 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021665 return NULL;
21666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021667 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21668 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021669 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021670 p->error_indicator = 1;
21671 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021673 return NULL;
21674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021675 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21676 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021677 _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021678 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021679 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021680}
21681
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021682// _tmp_101: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021683static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021684_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021685{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021686 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021688 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021689 return NULL;
21690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021691 void * _res = NULL;
21692 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021693 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021694 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021695 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021696 return NULL;
21697 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021698 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 +010021699 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021700 expr_ty y;
21701 void *z;
21702 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021703 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021704 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021705 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021706 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021707 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021708 )
21709 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021710 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 +010021711 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21712 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021713 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021714 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021715 return NULL;
21716 }
21717 goto done;
21718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021719 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021720 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021723 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021724 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021725 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021726 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021727}
21728
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021729// _tmp_102: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021730static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021731_tmp_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021732{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021733 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021736 return NULL;
21737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021738 void * _res = NULL;
21739 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021740 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021743 return NULL;
21744 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021745 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021746 expr_ty yield_expr_var;
21747 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021748 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021749 )
21750 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021751 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 +010021752 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021753 goto done;
21754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021755 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021756 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021758 }
21759 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021761 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021762 return NULL;
21763 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021764 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021765 expr_ty named_expression_var;
21766 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021767 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021768 )
21769 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021770 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 +010021771 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021772 goto done;
21773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021774 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021775 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021778 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021779 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021780 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021781 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021782}
21783
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021784// _loop0_104: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021785static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021786_loop0_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021787{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021788 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021789 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021791 return NULL;
21792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021793 void *_res = NULL;
21794 int _mark = p->mark;
21795 int _start_mark = p->mark;
21796 void **_children = PyMem_Malloc(sizeof(void *));
21797 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021798 p->error_indicator = 1;
21799 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021801 return NULL;
21802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021803 ssize_t _children_capacity = 1;
21804 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021805 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021807 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021808 return NULL;
21809 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021810 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 +010021811 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021812 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021813 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021814 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021815 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021816 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021817 )
21818 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021819 _res = elem;
21820 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021821 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021822 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021823 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021824 return NULL;
21825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021826 if (_n == _children_capacity) {
21827 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021828 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21829 if (!_new_children) {
21830 p->error_indicator = 1;
21831 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021833 return NULL;
21834 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021835 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021837 _children[_n++] = _res;
21838 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021840 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021841 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021844 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21845 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021846 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021847 p->error_indicator = 1;
21848 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021850 return NULL;
21851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021852 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21853 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021854 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021855 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021856 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021857}
21858
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021859// _gather_103: double_starred_kvpair _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021860static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021861_gather_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021862{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021863 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021864 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021865 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021866 return NULL;
21867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021868 asdl_seq * _res = NULL;
21869 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021870 { // double_starred_kvpair _loop0_104
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021871 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021872 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021873 return NULL;
21874 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021875 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 +010021876 KeyValuePair* elem;
21877 asdl_seq * seq;
21878 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021879 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021880 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021881 (seq = _loop0_104_rule(p)) // _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021882 )
21883 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021884 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 +010021885 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021886 goto done;
21887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021888 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021889 D(fprintf(stderr, "%*c%s _gather_103[%d-%d]: %s failed!\n", p->level, ' ',
21890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021892 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021893 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021894 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021895 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021896}
21897
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021898// _loop1_105: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021899static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021900_loop1_105_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021901{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021902 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021903 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021904 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021905 return NULL;
21906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021907 void *_res = NULL;
21908 int _mark = p->mark;
21909 int _start_mark = p->mark;
21910 void **_children = PyMem_Malloc(sizeof(void *));
21911 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021912 p->error_indicator = 1;
21913 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021915 return NULL;
21916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021917 ssize_t _children_capacity = 1;
21918 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021919 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021921 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021922 return NULL;
21923 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021924 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 +030021925 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021926 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021927 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021928 )
21929 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021930 _res = for_if_clause_var;
21931 if (_n == _children_capacity) {
21932 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021933 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21934 if (!_new_children) {
21935 p->error_indicator = 1;
21936 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021937 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021938 return NULL;
21939 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021940 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021942 _children[_n++] = _res;
21943 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021945 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021946 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021949 if (_n == 0 || p->error_indicator) {
21950 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021951 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021952 return NULL;
21953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021954 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21955 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021956 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021957 p->error_indicator = 1;
21958 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021960 return NULL;
21961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021962 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21963 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021964 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021966 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021967}
21968
Guido van Rossum3941d972020-05-01 09:42:03 -070021969// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070021970static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021971_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070021972{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021973 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070021974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021975 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070021976 return NULL;
21977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021978 void *_res = NULL;
21979 int _mark = p->mark;
21980 int _start_mark = p->mark;
21981 void **_children = PyMem_Malloc(sizeof(void *));
21982 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021983 p->error_indicator = 1;
21984 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021985 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021986 return NULL;
21987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021988 ssize_t _children_capacity = 1;
21989 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021990 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021991 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021992 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021993 return NULL;
21994 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021995 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070021996 void *_tmp_147_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021997 while (
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070021998 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070021999 )
22000 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070022001 _res = _tmp_147_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022002 if (_n == _children_capacity) {
22003 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022004 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22005 if (!_new_children) {
22006 p->error_indicator = 1;
22007 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022008 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022009 return NULL;
22010 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022011 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022013 _children[_n++] = _res;
22014 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022016 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022017 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
22018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022020 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22021 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022022 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022023 p->error_indicator = 1;
22024 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022025 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022026 return NULL;
22027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022028 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22029 PyMem_Free(_children);
22030 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022032 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022033}
22034
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022035// _loop0_107: ('if' disjunction)
22036static asdl_seq *
22037_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022039 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022041 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022042 return NULL;
22043 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022044 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022045 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022046 int _start_mark = p->mark;
22047 void **_children = PyMem_Malloc(sizeof(void *));
22048 if (!_children) {
22049 p->error_indicator = 1;
22050 PyErr_NoMemory();
22051 D(p->level--);
22052 return NULL;
22053 }
22054 ssize_t _children_capacity = 1;
22055 ssize_t _n = 0;
22056 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022057 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022058 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022059 return NULL;
22060 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022061 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
22062 void *_tmp_148_var;
22063 while (
22064 (_tmp_148_var = _tmp_148_rule(p)) // 'if' disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022065 )
22066 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022067 _res = _tmp_148_var;
22068 if (_n == _children_capacity) {
22069 _children_capacity *= 2;
22070 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22071 if (!_new_children) {
22072 p->error_indicator = 1;
22073 PyErr_NoMemory();
22074 D(p->level--);
22075 return NULL;
22076 }
22077 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022078 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022079 _children[_n++] = _res;
22080 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022082 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022083 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
22084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022085 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022086 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22087 if (!_seq) {
22088 PyMem_Free(_children);
22089 p->error_indicator = 1;
22090 PyErr_NoMemory();
22091 D(p->level--);
22092 return NULL;
22093 }
22094 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22095 PyMem_Free(_children);
22096 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022097 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022098 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022099}
22100
Guido van Rossum3941d972020-05-01 09:42:03 -070022101// _tmp_108: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022102static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022103_tmp_108_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022104{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022105 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022107 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022108 return NULL;
22109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022110 void * _res = NULL;
22111 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022112 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022114 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022115 return NULL;
22116 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022117 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022118 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022119 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022120 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022121 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022122 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022123 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022124 )
22125 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022126 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022127 _res = c;
22128 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022129 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022130 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022131 return NULL;
22132 }
22133 goto done;
22134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022135 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022136 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
22137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022139 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022140 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022141 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022142 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022143}
22144
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022145// _tmp_109: ',' args
22146static void *
22147_tmp_109_rule(Parser *p)
22148{
22149 D(p->level++);
22150 if (p->error_indicator) {
22151 D(p->level--);
22152 return NULL;
22153 }
22154 void * _res = NULL;
22155 int _mark = p->mark;
22156 { // ',' args
22157 if (p->error_indicator) {
22158 D(p->level--);
22159 return NULL;
22160 }
22161 D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
22162 Token * _literal;
22163 expr_ty c;
22164 if (
22165 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22166 &&
22167 (c = args_rule(p)) // args
22168 )
22169 {
22170 D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
22171 _res = c;
22172 if (_res == NULL && PyErr_Occurred()) {
22173 p->error_indicator = 1;
22174 D(p->level--);
22175 return NULL;
22176 }
22177 goto done;
22178 }
22179 p->mark = _mark;
22180 D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ',
22181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
22182 }
22183 _res = NULL;
22184 done:
22185 D(p->level--);
22186 return _res;
22187}
22188
22189// _loop0_111: ',' kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022190static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022191_loop0_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022192{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022193 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022195 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022196 return NULL;
22197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022198 void *_res = NULL;
22199 int _mark = p->mark;
22200 int _start_mark = p->mark;
22201 void **_children = PyMem_Malloc(sizeof(void *));
22202 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022203 p->error_indicator = 1;
22204 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022205 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022206 return NULL;
22207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022208 ssize_t _children_capacity = 1;
22209 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022210 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022213 return NULL;
22214 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022215 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 +010022216 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022217 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022218 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022219 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022220 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022221 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022222 )
22223 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022224 _res = elem;
22225 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022226 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022227 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022228 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022229 return NULL;
22230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022231 if (_n == _children_capacity) {
22232 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022233 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22234 if (!_new_children) {
22235 p->error_indicator = 1;
22236 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022237 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022238 return NULL;
22239 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022240 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022242 _children[_n++] = _res;
22243 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022245 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022246 D(fprintf(stderr, "%*c%s _loop0_111[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022249 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22250 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022251 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022252 p->error_indicator = 1;
22253 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022254 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022255 return NULL;
22256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022257 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22258 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022259 _PyPegen_insert_memo(p, _start_mark, _loop0_111_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022260 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022261 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022262}
22263
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022264// _gather_110: kwarg_or_starred _loop0_111
Guido van Rossum3941d972020-05-01 09:42:03 -070022265static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022266_gather_110_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022267{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022268 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022270 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022271 return NULL;
22272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022273 asdl_seq * _res = NULL;
22274 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022275 { // kwarg_or_starred _loop0_111
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022276 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022277 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022278 return NULL;
22279 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022280 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 -070022281 KeywordOrStarred* elem;
22282 asdl_seq * seq;
22283 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022284 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022285 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022286 (seq = _loop0_111_rule(p)) // _loop0_111
Guido van Rossum3941d972020-05-01 09:42:03 -070022287 )
22288 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022289 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 +010022290 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022291 goto done;
22292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022293 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022294 D(fprintf(stderr, "%*c%s _gather_110[%d-%d]: %s failed!\n", p->level, ' ',
22295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_111"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022297 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022298 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022299 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022300 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022301}
22302
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022303// _loop0_113: ',' kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022304static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022305_loop0_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022307 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022309 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022310 return NULL;
22311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022312 void *_res = NULL;
22313 int _mark = p->mark;
22314 int _start_mark = p->mark;
22315 void **_children = PyMem_Malloc(sizeof(void *));
22316 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022317 p->error_indicator = 1;
22318 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022319 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022320 return NULL;
22321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022322 ssize_t _children_capacity = 1;
22323 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022324 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022327 return NULL;
22328 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022329 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 +010022330 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022331 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022332 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022333 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022334 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022335 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022336 )
22337 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022338 _res = elem;
22339 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022340 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022341 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022342 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022343 return NULL;
22344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022345 if (_n == _children_capacity) {
22346 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022347 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22348 if (!_new_children) {
22349 p->error_indicator = 1;
22350 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022351 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022352 return NULL;
22353 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022354 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022356 _children[_n++] = _res;
22357 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022359 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022360 D(fprintf(stderr, "%*c%s _loop0_113[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022363 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22364 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022365 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022366 p->error_indicator = 1;
22367 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022368 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022369 return NULL;
22370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022371 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22372 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022373 _PyPegen_insert_memo(p, _start_mark, _loop0_113_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022374 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022375 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022376}
22377
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022378// _gather_112: kwarg_or_double_starred _loop0_113
Guido van Rossum3941d972020-05-01 09:42:03 -070022379static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022380_gather_112_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022381{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022382 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022383 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022384 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022385 return NULL;
22386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022387 asdl_seq * _res = NULL;
22388 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022389 { // kwarg_or_double_starred _loop0_113
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022390 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022391 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022392 return NULL;
22393 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022394 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 -070022395 KeywordOrStarred* elem;
22396 asdl_seq * seq;
22397 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022398 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022399 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022400 (seq = _loop0_113_rule(p)) // _loop0_113
Guido van Rossum3941d972020-05-01 09:42:03 -070022401 )
22402 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022403 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 +010022404 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022405 goto done;
22406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022407 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022408 D(fprintf(stderr, "%*c%s _gather_112[%d-%d]: %s failed!\n", p->level, ' ',
22409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022411 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022412 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022413 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022414 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022415}
22416
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022417// _loop0_115: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022418static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022419_loop0_115_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022420{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022421 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022423 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022424 return NULL;
22425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022426 void *_res = NULL;
22427 int _mark = p->mark;
22428 int _start_mark = p->mark;
22429 void **_children = PyMem_Malloc(sizeof(void *));
22430 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022431 p->error_indicator = 1;
22432 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022434 return NULL;
22435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022436 ssize_t _children_capacity = 1;
22437 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022438 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022441 return NULL;
22442 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022443 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 +010022444 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022445 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022446 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022447 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022448 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022449 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022450 )
22451 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022452 _res = elem;
22453 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022454 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022455 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022456 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022457 return NULL;
22458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022459 if (_n == _children_capacity) {
22460 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022461 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22462 if (!_new_children) {
22463 p->error_indicator = 1;
22464 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022465 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022466 return NULL;
22467 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022468 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022470 _children[_n++] = _res;
22471 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022473 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022474 D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022477 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22478 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022479 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022480 p->error_indicator = 1;
22481 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022482 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022483 return NULL;
22484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022485 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22486 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022487 _PyPegen_insert_memo(p, _start_mark, _loop0_115_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022489 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022490}
22491
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022492// _gather_114: kwarg_or_starred _loop0_115
Guido van Rossumc001c092020-04-30 12:12:19 -070022493static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022494_gather_114_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022495{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022496 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022497 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022498 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022499 return NULL;
22500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022501 asdl_seq * _res = NULL;
22502 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022503 { // kwarg_or_starred _loop0_115
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022505 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022506 return NULL;
22507 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022508 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 -070022509 KeywordOrStarred* elem;
22510 asdl_seq * seq;
22511 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022512 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022513 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022514 (seq = _loop0_115_rule(p)) // _loop0_115
Guido van Rossumc001c092020-04-30 12:12:19 -070022515 )
22516 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022517 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 +010022518 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022519 goto done;
22520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022521 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022522 D(fprintf(stderr, "%*c%s _gather_114[%d-%d]: %s failed!\n", p->level, ' ',
22523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_115"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022525 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022526 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022527 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022528 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022529}
22530
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022531// _loop0_117: ',' kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022532static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022533_loop0_117_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022534{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022535 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022537 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022538 return NULL;
22539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022540 void *_res = NULL;
22541 int _mark = p->mark;
22542 int _start_mark = p->mark;
22543 void **_children = PyMem_Malloc(sizeof(void *));
22544 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022545 p->error_indicator = 1;
22546 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022547 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022548 return NULL;
22549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022550 ssize_t _children_capacity = 1;
22551 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022552 { // ',' kwarg_or_double_starred
22553 if (p->error_indicator) {
22554 D(p->level--);
22555 return NULL;
22556 }
22557 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22558 Token * _literal;
22559 KeywordOrStarred* elem;
22560 while (
22561 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22562 &&
22563 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22564 )
22565 {
22566 _res = elem;
22567 if (_res == NULL && PyErr_Occurred()) {
22568 p->error_indicator = 1;
22569 PyMem_Free(_children);
22570 D(p->level--);
22571 return NULL;
22572 }
22573 if (_n == _children_capacity) {
22574 _children_capacity *= 2;
22575 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22576 if (!_new_children) {
22577 p->error_indicator = 1;
22578 PyErr_NoMemory();
22579 D(p->level--);
22580 return NULL;
22581 }
22582 _children = _new_children;
22583 }
22584 _children[_n++] = _res;
22585 _mark = p->mark;
22586 }
22587 p->mark = _mark;
22588 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
22589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
22590 }
22591 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22592 if (!_seq) {
22593 PyMem_Free(_children);
22594 p->error_indicator = 1;
22595 PyErr_NoMemory();
22596 D(p->level--);
22597 return NULL;
22598 }
22599 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22600 PyMem_Free(_children);
22601 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
22602 D(p->level--);
22603 return _seq;
22604}
22605
22606// _gather_116: kwarg_or_double_starred _loop0_117
22607static asdl_seq *
22608_gather_116_rule(Parser *p)
22609{
22610 D(p->level++);
22611 if (p->error_indicator) {
22612 D(p->level--);
22613 return NULL;
22614 }
22615 asdl_seq * _res = NULL;
22616 int _mark = p->mark;
22617 { // kwarg_or_double_starred _loop0_117
22618 if (p->error_indicator) {
22619 D(p->level--);
22620 return NULL;
22621 }
22622 D(fprintf(stderr, "%*c> _gather_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22623 KeywordOrStarred* elem;
22624 asdl_seq * seq;
22625 if (
22626 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22627 &&
22628 (seq = _loop0_117_rule(p)) // _loop0_117
22629 )
22630 {
22631 D(fprintf(stderr, "%*c+ _gather_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22632 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22633 goto done;
22634 }
22635 p->mark = _mark;
22636 D(fprintf(stderr, "%*c%s _gather_116[%d-%d]: %s failed!\n", p->level, ' ',
22637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22638 }
22639 _res = NULL;
22640 done:
22641 D(p->level--);
22642 return _res;
22643}
22644
22645// _loop0_118: (',' star_target)
22646static asdl_seq *
22647_loop0_118_rule(Parser *p)
22648{
22649 D(p->level++);
22650 if (p->error_indicator) {
22651 D(p->level--);
22652 return NULL;
22653 }
22654 void *_res = NULL;
22655 int _mark = p->mark;
22656 int _start_mark = p->mark;
22657 void **_children = PyMem_Malloc(sizeof(void *));
22658 if (!_children) {
22659 p->error_indicator = 1;
22660 PyErr_NoMemory();
22661 D(p->level--);
22662 return NULL;
22663 }
22664 ssize_t _children_capacity = 1;
22665 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022666 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022668 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022669 return NULL;
22670 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022671 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22672 void *_tmp_149_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022673 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022674 (_tmp_149_var = _tmp_149_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022675 )
22676 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022677 _res = _tmp_149_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022678 if (_n == _children_capacity) {
22679 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22681 if (!_new_children) {
22682 p->error_indicator = 1;
22683 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022684 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022685 return NULL;
22686 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022687 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022689 _children[_n++] = _res;
22690 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022692 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022693 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022696 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22697 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022698 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022699 p->error_indicator = 1;
22700 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022701 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022702 return NULL;
22703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022704 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22705 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022706 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022708 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022709}
22710
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022711// _loop0_120: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022712static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022713_loop0_120_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022715 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022717 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022718 return NULL;
22719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022720 void *_res = NULL;
22721 int _mark = p->mark;
22722 int _start_mark = p->mark;
22723 void **_children = PyMem_Malloc(sizeof(void *));
22724 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022725 p->error_indicator = 1;
22726 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022727 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022728 return NULL;
22729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022730 ssize_t _children_capacity = 1;
22731 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022732 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022735 return NULL;
22736 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022737 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022738 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022739 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022740 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022741 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022742 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022743 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022744 )
22745 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022746 _res = elem;
22747 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022748 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022749 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022751 return NULL;
22752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022753 if (_n == _children_capacity) {
22754 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022755 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22756 if (!_new_children) {
22757 p->error_indicator = 1;
22758 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022760 return NULL;
22761 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022762 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022764 _children[_n++] = _res;
22765 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022767 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022768 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022771 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22772 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022773 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022774 p->error_indicator = 1;
22775 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022777 return NULL;
22778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022779 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22780 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022781 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022782 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022783 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022784}
22785
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022786// _gather_119: star_target _loop0_120
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022787static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022788_gather_119_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022789{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022790 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022792 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022793 return NULL;
22794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022795 asdl_seq * _res = NULL;
22796 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022797 { // star_target _loop0_120
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022798 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022799 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022800 return NULL;
22801 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022802 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 +010022803 expr_ty elem;
22804 asdl_seq * seq;
22805 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022806 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022807 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022808 (seq = _loop0_120_rule(p)) // _loop0_120
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022809 )
22810 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022811 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 +010022812 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022813 goto done;
22814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022815 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022816 D(fprintf(stderr, "%*c%s _gather_119[%d-%d]: %s failed!\n", p->level, ' ',
22817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022819 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022820 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022821 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022822 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022823}
22824
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022825// _tmp_121: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022826static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022827_tmp_121_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022828{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022829 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022832 return NULL;
22833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022834 void * _res = NULL;
22835 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022836 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022838 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022839 return NULL;
22840 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022841 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022842 expr_ty star_target_var;
22843 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022844 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022845 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022846 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022847 )
22848 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022849 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 +010022850 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022851 goto done;
22852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022853 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022854 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022857 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022858 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022859 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022860 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022861}
22862
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022863// _loop0_123: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022864static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022865_loop0_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022866{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022867 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022869 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022870 return NULL;
22871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022872 void *_res = NULL;
22873 int _mark = p->mark;
22874 int _start_mark = p->mark;
22875 void **_children = PyMem_Malloc(sizeof(void *));
22876 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022877 p->error_indicator = 1;
22878 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022880 return NULL;
22881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022882 ssize_t _children_capacity = 1;
22883 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022884 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022886 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022887 return NULL;
22888 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022889 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022890 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022891 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022892 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022893 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022894 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022895 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022896 )
22897 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022898 _res = elem;
22899 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022900 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022901 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022903 return NULL;
22904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022905 if (_n == _children_capacity) {
22906 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022907 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22908 if (!_new_children) {
22909 p->error_indicator = 1;
22910 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022912 return NULL;
22913 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022914 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022916 _children[_n++] = _res;
22917 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022919 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022920 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022923 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22924 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022925 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022926 p->error_indicator = 1;
22927 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022928 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022929 return NULL;
22930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022931 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22932 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022933 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022934 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022935 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022936}
22937
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022938// _gather_122: del_target _loop0_123
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022939static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022940_gather_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022941{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022942 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022945 return NULL;
22946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022947 asdl_seq * _res = NULL;
22948 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022949 { // del_target _loop0_123
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022951 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022952 return NULL;
22953 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022954 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 +010022955 expr_ty elem;
22956 asdl_seq * seq;
22957 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022958 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022959 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022960 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022961 )
22962 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022963 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 +010022964 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022965 goto done;
22966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022967 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022968 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
22969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022971 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022972 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022973 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022974 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022975}
22976
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022977// _loop0_125: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022978static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022979_loop0_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022980{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022981 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022982 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022983 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022984 return NULL;
22985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022986 void *_res = NULL;
22987 int _mark = p->mark;
22988 int _start_mark = p->mark;
22989 void **_children = PyMem_Malloc(sizeof(void *));
22990 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022991 p->error_indicator = 1;
22992 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022994 return NULL;
22995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022996 ssize_t _children_capacity = 1;
22997 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022998 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023001 return NULL;
23002 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023003 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023004 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023005 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023006 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023007 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023008 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023009 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023010 )
23011 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023012 _res = elem;
23013 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023014 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023015 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023017 return NULL;
23018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023019 if (_n == _children_capacity) {
23020 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023021 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23022 if (!_new_children) {
23023 p->error_indicator = 1;
23024 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023026 return NULL;
23027 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023028 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023030 _children[_n++] = _res;
23031 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023033 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023034 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023037 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23038 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023039 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023040 p->error_indicator = 1;
23041 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023043 return NULL;
23044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023045 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23046 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023047 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023048 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023049 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023050}
23051
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023052// _gather_124: target _loop0_125
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023053static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023054_gather_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023055{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023056 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023057 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023058 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023059 return NULL;
23060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023061 asdl_seq * _res = NULL;
23062 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023063 { // target _loop0_125
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023065 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023066 return NULL;
23067 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023068 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 +010023069 expr_ty elem;
23070 asdl_seq * seq;
23071 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023072 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023073 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023074 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023075 )
23076 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023077 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 +010023078 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023079 goto done;
23080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023081 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023082 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023085 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023086 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023087 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023088 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023089}
23090
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023091// _tmp_126: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023092static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023093_tmp_126_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023094{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023095 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023098 return NULL;
23099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023100 void * _res = NULL;
23101 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023102 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023104 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023105 return NULL;
23106 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023107 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023108 expr_ty args_var;
23109 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023110 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023111 )
23112 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023113 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023114 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023115 goto done;
23116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023117 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023118 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023120 }
23121 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023123 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023124 return NULL;
23125 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023126 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 +010023127 expr_ty expression_var;
23128 asdl_seq* for_if_clauses_var;
23129 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023130 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023131 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023132 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023133 )
23134 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023135 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 +010023136 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023137 goto done;
23138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023139 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023140 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023143 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023144 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023145 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023146 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023147}
23148
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023149// _loop0_127: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023150static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023151_loop0_127_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023152{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023153 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023154 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023155 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023156 return NULL;
23157 }
23158 void *_res = NULL;
23159 int _mark = p->mark;
23160 int _start_mark = p->mark;
23161 void **_children = PyMem_Malloc(sizeof(void *));
23162 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023163 p->error_indicator = 1;
23164 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023165 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023166 return NULL;
23167 }
23168 ssize_t _children_capacity = 1;
23169 ssize_t _n = 0;
23170 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023173 return NULL;
23174 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023175 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 +030023176 asdl_seq* star_named_expressions_var;
23177 while (
23178 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23179 )
23180 {
23181 _res = star_named_expressions_var;
23182 if (_n == _children_capacity) {
23183 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023184 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23185 if (!_new_children) {
23186 p->error_indicator = 1;
23187 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023188 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023189 return NULL;
23190 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023191 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023192 }
23193 _children[_n++] = _res;
23194 _mark = p->mark;
23195 }
23196 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023197 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023199 }
23200 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23201 if (!_seq) {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023202 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023203 p->error_indicator = 1;
23204 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023205 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023206 return NULL;
23207 }
23208 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23209 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023210 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023211 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023212 return _seq;
23213}
23214
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023215// _tmp_128: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023216static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023217_tmp_128_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023218{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023219 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023222 return NULL;
23223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023224 void * _res = NULL;
23225 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023226 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023227 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023228 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023229 return NULL;
23230 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023231 D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023232 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023233 expr_ty annotated_rhs_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023234 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023235 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023236 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023237 (annotated_rhs_var = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023238 )
23239 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023240 D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023241 _res = _PyPegen_dummy_name(p, _literal, annotated_rhs_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023242 goto done;
23243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023244 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023245 D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023248 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023249 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023250 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023251 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023252}
23253
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023254// _loop0_129: (star_targets '=')
23255static asdl_seq *
23256_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023257{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023258 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023261 return NULL;
23262 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023263 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023264 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023265 int _start_mark = p->mark;
23266 void **_children = PyMem_Malloc(sizeof(void *));
23267 if (!_children) {
23268 p->error_indicator = 1;
23269 PyErr_NoMemory();
23270 D(p->level--);
23271 return NULL;
23272 }
23273 ssize_t _children_capacity = 1;
23274 ssize_t _n = 0;
23275 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023276 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023277 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023278 return NULL;
23279 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023280 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 -070023281 void *_tmp_150_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023282 while (
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023283 (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023284 )
23285 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023286 _res = _tmp_150_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023287 if (_n == _children_capacity) {
23288 _children_capacity *= 2;
23289 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23290 if (!_new_children) {
23291 p->error_indicator = 1;
23292 PyErr_NoMemory();
23293 D(p->level--);
23294 return NULL;
23295 }
23296 _children = _new_children;
23297 }
23298 _children[_n++] = _res;
23299 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023301 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023302 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023304 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023305 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23306 if (!_seq) {
23307 PyMem_Free(_children);
23308 p->error_indicator = 1;
23309 PyErr_NoMemory();
23310 D(p->level--);
23311 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023312 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023313 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23314 PyMem_Free(_children);
23315 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023316 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023317 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023318}
23319
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023320// _loop0_130: (star_targets '=')
23321static asdl_seq *
23322_loop0_130_rule(Parser *p)
23323{
23324 D(p->level++);
23325 if (p->error_indicator) {
23326 D(p->level--);
23327 return NULL;
23328 }
23329 void *_res = NULL;
23330 int _mark = p->mark;
23331 int _start_mark = p->mark;
23332 void **_children = PyMem_Malloc(sizeof(void *));
23333 if (!_children) {
23334 p->error_indicator = 1;
23335 PyErr_NoMemory();
23336 D(p->level--);
23337 return NULL;
23338 }
23339 ssize_t _children_capacity = 1;
23340 ssize_t _n = 0;
23341 { // (star_targets '=')
23342 if (p->error_indicator) {
23343 D(p->level--);
23344 return NULL;
23345 }
23346 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23347 void *_tmp_151_var;
23348 while (
23349 (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
23350 )
23351 {
23352 _res = _tmp_151_var;
23353 if (_n == _children_capacity) {
23354 _children_capacity *= 2;
23355 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23356 if (!_new_children) {
23357 p->error_indicator = 1;
23358 PyErr_NoMemory();
23359 D(p->level--);
23360 return NULL;
23361 }
23362 _children = _new_children;
23363 }
23364 _children[_n++] = _res;
23365 _mark = p->mark;
23366 }
23367 p->mark = _mark;
23368 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
23369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23370 }
23371 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23372 if (!_seq) {
23373 PyMem_Free(_children);
23374 p->error_indicator = 1;
23375 PyErr_NoMemory();
23376 D(p->level--);
23377 return NULL;
23378 }
23379 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23380 PyMem_Free(_children);
23381 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
23382 D(p->level--);
23383 return _seq;
23384}
23385
23386// _tmp_131: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023387static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023388_tmp_131_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023389{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023390 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023393 return NULL;
23394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023395 void * _res = NULL;
23396 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023397 { // yield_expr
23398 if (p->error_indicator) {
23399 D(p->level--);
23400 return NULL;
23401 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023402 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023403 expr_ty yield_expr_var;
23404 if (
23405 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23406 )
23407 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023408 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023409 _res = yield_expr_var;
23410 goto done;
23411 }
23412 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023413 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23415 }
23416 { // star_expressions
23417 if (p->error_indicator) {
23418 D(p->level--);
23419 return NULL;
23420 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023421 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023422 expr_ty star_expressions_var;
23423 if (
23424 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23425 )
23426 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023427 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023428 _res = star_expressions_var;
23429 goto done;
23430 }
23431 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023432 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23434 }
23435 _res = NULL;
23436 done:
23437 D(p->level--);
23438 return _res;
23439}
23440
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023441// _tmp_132: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023442static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023443_tmp_132_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023444{
23445 D(p->level++);
23446 if (p->error_indicator) {
23447 D(p->level--);
23448 return NULL;
23449 }
23450 void * _res = NULL;
23451 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023452 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023453 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023454 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023455 return NULL;
23456 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023457 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023458 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023459 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023460 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023461 )
23462 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023463 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023464 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023465 goto done;
23466 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023467 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023468 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023470 }
23471 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023473 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023474 return NULL;
23475 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023476 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023477 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023478 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023479 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023480 )
23481 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023482 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023483 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023484 goto done;
23485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023486 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023487 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023489 }
23490 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023491 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023492 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023493 return NULL;
23494 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023495 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023496 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023497 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023498 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023499 )
23500 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023501 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023502 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023503 goto done;
23504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023505 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023506 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023509 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023510 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023511 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023512 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023513}
23514
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023515// _loop0_133: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023516static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023517_loop0_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023518{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023519 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023521 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023522 return NULL;
23523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023524 void *_res = NULL;
23525 int _mark = p->mark;
23526 int _start_mark = p->mark;
23527 void **_children = PyMem_Malloc(sizeof(void *));
23528 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023529 p->error_indicator = 1;
23530 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023531 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023532 return NULL;
23533 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023534 ssize_t _children_capacity = 1;
23535 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023536 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023538 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023539 return NULL;
23540 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023541 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023542 arg_ty param_no_default_var;
23543 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023544 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023545 )
23546 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023547 _res = param_no_default_var;
23548 if (_n == _children_capacity) {
23549 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023550 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23551 if (!_new_children) {
23552 p->error_indicator = 1;
23553 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023554 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023555 return NULL;
23556 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023557 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023559 _children[_n++] = _res;
23560 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023562 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023563 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023566 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23567 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023568 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023569 p->error_indicator = 1;
23570 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023571 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023572 return NULL;
23573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023574 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23575 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023576 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023577 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023578 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023579}
23580
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023581// _tmp_134: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023582static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023583_tmp_134_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023584{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023585 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023588 return NULL;
23589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023590 void * _res = NULL;
23591 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023592 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023595 return NULL;
23596 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023597 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023598 SlashWithDefault* slash_with_default_var;
23599 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023600 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023601 )
23602 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023603 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023604 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023605 goto done;
23606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023607 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023608 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023610 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023611 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023613 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023614 return NULL;
23615 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023616 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23617 asdl_seq * _loop1_152_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023618 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023619 (_loop1_152_var = _loop1_152_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023620 )
23621 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023622 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23623 _res = _loop1_152_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023624 goto done;
23625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023626 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023627 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023630 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023631 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023632 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023633 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023634}
23635
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023636// _loop0_135: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023637static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023638_loop0_135_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023639{
23640 D(p->level++);
23641 if (p->error_indicator) {
23642 D(p->level--);
23643 return NULL;
23644 }
23645 void *_res = NULL;
23646 int _mark = p->mark;
23647 int _start_mark = p->mark;
23648 void **_children = PyMem_Malloc(sizeof(void *));
23649 if (!_children) {
23650 p->error_indicator = 1;
23651 PyErr_NoMemory();
23652 D(p->level--);
23653 return NULL;
23654 }
23655 ssize_t _children_capacity = 1;
23656 ssize_t _n = 0;
23657 { // lambda_param_no_default
23658 if (p->error_indicator) {
23659 D(p->level--);
23660 return NULL;
23661 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023662 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023663 arg_ty lambda_param_no_default_var;
23664 while (
23665 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23666 )
23667 {
23668 _res = lambda_param_no_default_var;
23669 if (_n == _children_capacity) {
23670 _children_capacity *= 2;
23671 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23672 if (!_new_children) {
23673 p->error_indicator = 1;
23674 PyErr_NoMemory();
23675 D(p->level--);
23676 return NULL;
23677 }
23678 _children = _new_children;
23679 }
23680 _children[_n++] = _res;
23681 _mark = p->mark;
23682 }
23683 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023684 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23686 }
23687 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23688 if (!_seq) {
23689 PyMem_Free(_children);
23690 p->error_indicator = 1;
23691 PyErr_NoMemory();
23692 D(p->level--);
23693 return NULL;
23694 }
23695 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23696 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023697 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023698 D(p->level--);
23699 return _seq;
23700}
23701
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023702// _tmp_136: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023703static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023704_tmp_136_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023705{
23706 D(p->level++);
23707 if (p->error_indicator) {
23708 D(p->level--);
23709 return NULL;
23710 }
23711 void * _res = NULL;
23712 int _mark = p->mark;
23713 { // lambda_slash_with_default
23714 if (p->error_indicator) {
23715 D(p->level--);
23716 return NULL;
23717 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023718 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023719 SlashWithDefault* lambda_slash_with_default_var;
23720 if (
23721 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23722 )
23723 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023724 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023725 _res = lambda_slash_with_default_var;
23726 goto done;
23727 }
23728 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023729 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23731 }
23732 { // lambda_param_with_default+
23733 if (p->error_indicator) {
23734 D(p->level--);
23735 return NULL;
23736 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023737 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23738 asdl_seq * _loop1_153_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023739 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023740 (_loop1_153_var = _loop1_153_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023741 )
23742 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023743 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23744 _res = _loop1_153_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023745 goto done;
23746 }
23747 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023748 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23750 }
23751 _res = NULL;
23752 done:
23753 D(p->level--);
23754 return _res;
23755}
23756
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023757// _tmp_137: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023758static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023759_tmp_137_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023760{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023761 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023763 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023764 return NULL;
23765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023766 void * _res = NULL;
23767 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023768 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023771 return NULL;
23772 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023773 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023774 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023775 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023776 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023777 )
23778 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023779 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023780 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023781 goto done;
23782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023783 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023784 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023786 }
23787 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023789 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023790 return NULL;
23791 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023792 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023793 Token * _literal;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023794 void *_tmp_154_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023796 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023797 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023798 (_tmp_154_var = _tmp_154_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023799 )
23800 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023801 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23802 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023803 goto done;
23804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023805 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023809 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023810 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023811 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023812 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023813}
23814
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023815// _tmp_138: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023816static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023817_tmp_138_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023818{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023819 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023821 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023822 return NULL;
23823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023824 void * _res = NULL;
23825 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023826 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023828 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023829 return NULL;
23830 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023831 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023832 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023833 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023834 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023835 )
23836 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023837 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023838 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023839 goto done;
23840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023841 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023842 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023844 }
23845 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023848 return NULL;
23849 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023850 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023851 Token * _literal;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023852 void *_tmp_155_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023853 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023854 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023855 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023856 (_tmp_155_var = _tmp_155_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023857 )
23858 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023859 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23860 _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023861 goto done;
23862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023863 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023864 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023867 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023868 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023869 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023870 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023871}
23872
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023873// _tmp_139: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023874static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023875_tmp_139_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023876{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023877 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023879 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023880 return NULL;
23881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023882 void * _res = NULL;
23883 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023884 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023886 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023887 return NULL;
23888 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023889 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023890 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023891 expr_ty z;
23892 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023893 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023894 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023895 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023896 )
23897 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023898 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023899 _res = z;
23900 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023901 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023903 return NULL;
23904 }
23905 goto done;
23906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023907 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023908 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023911 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023912 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023913 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023914 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023915}
23916
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023917// _tmp_140: '.' | '...'
23918static void *
23919_tmp_140_rule(Parser *p)
23920{
23921 D(p->level++);
23922 if (p->error_indicator) {
23923 D(p->level--);
23924 return NULL;
23925 }
23926 void * _res = NULL;
23927 int _mark = p->mark;
23928 { // '.'
23929 if (p->error_indicator) {
23930 D(p->level--);
23931 return NULL;
23932 }
23933 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23934 Token * _literal;
23935 if (
23936 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23937 )
23938 {
23939 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23940 _res = _literal;
23941 goto done;
23942 }
23943 p->mark = _mark;
23944 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
23945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23946 }
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, 52)) // 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 _res = NULL;
23967 done:
23968 D(p->level--);
23969 return _res;
23970}
23971
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023972// _tmp_141: '.' | '...'
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023973static void *
23974_tmp_141_rule(Parser *p)
23975{
23976 D(p->level++);
23977 if (p->error_indicator) {
23978 D(p->level--);
23979 return NULL;
23980 }
23981 void * _res = NULL;
23982 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023983 { // '.'
23984 if (p->error_indicator) {
23985 D(p->level--);
23986 return NULL;
23987 }
23988 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23989 Token * _literal;
23990 if (
23991 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23992 )
23993 {
23994 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23995 _res = _literal;
23996 goto done;
23997 }
23998 p->mark = _mark;
23999 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24001 }
24002 { // '...'
24003 if (p->error_indicator) {
24004 D(p->level--);
24005 return NULL;
24006 }
24007 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24008 Token * _literal;
24009 if (
24010 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24011 )
24012 {
24013 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24014 _res = _literal;
24015 goto done;
24016 }
24017 p->mark = _mark;
24018 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24020 }
24021 _res = NULL;
24022 done:
24023 D(p->level--);
24024 return _res;
24025}
24026
24027// _tmp_142: '@' named_expression NEWLINE
24028static void *
24029_tmp_142_rule(Parser *p)
24030{
24031 D(p->level++);
24032 if (p->error_indicator) {
24033 D(p->level--);
24034 return NULL;
24035 }
24036 void * _res = NULL;
24037 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024038 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024040 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024041 return NULL;
24042 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024043 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024044 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024045 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024046 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024047 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024048 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024049 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024050 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024051 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024052 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024053 )
24054 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024055 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024056 _res = f;
24057 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024058 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024060 return NULL;
24061 }
24062 goto done;
24063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024064 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024065 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024068 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024069 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024070 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024071 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024072}
24073
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024074// _tmp_143: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024075static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024076_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024077{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024078 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024080 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024081 return NULL;
24082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024083 void * _res = NULL;
24084 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024085 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024088 return NULL;
24089 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024090 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024091 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024092 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024093 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024094 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024095 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024096 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024097 )
24098 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024099 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024100 _res = c;
24101 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024102 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024103 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024104 return NULL;
24105 }
24106 goto done;
24107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024108 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024109 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024112 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024113 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024114 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024115 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024116}
24117
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024118// _tmp_144: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024119static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024120_tmp_144_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024121{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024122 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024124 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024125 return NULL;
24126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024127 void * _res = NULL;
24128 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024129 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024132 return NULL;
24133 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024134 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024135 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024136 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024137 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024138 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024139 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024140 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024141 )
24142 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024143 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024144 _res = c;
24145 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024146 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024147 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024148 return NULL;
24149 }
24150 goto done;
24151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024152 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024153 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024156 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024157 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024159 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024160}
24161
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024162// _tmp_145: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024163static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024164_tmp_145_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024165{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024166 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024169 return NULL;
24170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024171 void * _res = NULL;
24172 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024173 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024176 return NULL;
24177 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024178 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024179 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024180 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024181 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024182 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024183 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024184 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024185 )
24186 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024187 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024188 _res = c;
24189 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024190 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024191 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024192 return NULL;
24193 }
24194 goto done;
24195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024196 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024197 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024200 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024201 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024202 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024203 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024204}
24205
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024206// _tmp_146: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024207static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024208_tmp_146_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024209{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024210 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024213 return NULL;
24214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024215 void * _res = NULL;
24216 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024217 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024218 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024219 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024220 return NULL;
24221 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024222 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024223 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024224 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024225 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024226 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024227 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024228 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024229 )
24230 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024231 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024232 _res = c;
24233 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024236 return NULL;
24237 }
24238 goto done;
24239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024240 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024241 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024243 }
24244 _res = NULL;
24245 done:
24246 D(p->level--);
24247 return _res;
24248}
24249
24250// _tmp_147: 'if' disjunction
24251static void *
24252_tmp_147_rule(Parser *p)
24253{
24254 D(p->level++);
24255 if (p->error_indicator) {
24256 D(p->level--);
24257 return NULL;
24258 }
24259 void * _res = NULL;
24260 int _mark = p->mark;
24261 { // 'if' disjunction
24262 if (p->error_indicator) {
24263 D(p->level--);
24264 return NULL;
24265 }
24266 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24267 Token * _keyword;
24268 expr_ty z;
24269 if (
24270 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24271 &&
24272 (z = disjunction_rule(p)) // disjunction
24273 )
24274 {
24275 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24276 _res = z;
24277 if (_res == NULL && PyErr_Occurred()) {
24278 p->error_indicator = 1;
24279 D(p->level--);
24280 return NULL;
24281 }
24282 goto done;
24283 }
24284 p->mark = _mark;
24285 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24287 }
24288 _res = NULL;
24289 done:
24290 D(p->level--);
24291 return _res;
24292}
24293
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024294// _tmp_148: 'if' disjunction
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024295static void *
24296_tmp_148_rule(Parser *p)
24297{
24298 D(p->level++);
24299 if (p->error_indicator) {
24300 D(p->level--);
24301 return NULL;
24302 }
24303 void * _res = NULL;
24304 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024305 { // 'if' disjunction
24306 if (p->error_indicator) {
24307 D(p->level--);
24308 return NULL;
24309 }
24310 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24311 Token * _keyword;
24312 expr_ty z;
24313 if (
24314 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24315 &&
24316 (z = disjunction_rule(p)) // disjunction
24317 )
24318 {
24319 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24320 _res = z;
24321 if (_res == NULL && PyErr_Occurred()) {
24322 p->error_indicator = 1;
24323 D(p->level--);
24324 return NULL;
24325 }
24326 goto done;
24327 }
24328 p->mark = _mark;
24329 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
24330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24331 }
24332 _res = NULL;
24333 done:
24334 D(p->level--);
24335 return _res;
24336}
24337
24338// _tmp_149: ',' star_target
24339static void *
24340_tmp_149_rule(Parser *p)
24341{
24342 D(p->level++);
24343 if (p->error_indicator) {
24344 D(p->level--);
24345 return NULL;
24346 }
24347 void * _res = NULL;
24348 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024349 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024350 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024351 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024352 return NULL;
24353 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024354 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024355 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024356 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024357 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024358 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024359 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024360 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024361 )
24362 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024363 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024364 _res = c;
24365 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024366 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024368 return NULL;
24369 }
24370 goto done;
24371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024372 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024373 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024375 }
24376 _res = NULL;
24377 done:
24378 D(p->level--);
24379 return _res;
24380}
24381
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024382// _tmp_150: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024383static void *
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024384_tmp_150_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024385{
24386 D(p->level++);
24387 if (p->error_indicator) {
24388 D(p->level--);
24389 return NULL;
24390 }
24391 void * _res = NULL;
24392 int _mark = p->mark;
24393 { // star_targets '='
24394 if (p->error_indicator) {
24395 D(p->level--);
24396 return NULL;
24397 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024398 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 -070024399 Token * _literal;
24400 expr_ty star_targets_var;
24401 if (
24402 (star_targets_var = star_targets_rule(p)) // star_targets
24403 &&
24404 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24405 )
24406 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024407 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 -070024408 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24409 goto done;
24410 }
24411 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024412 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24414 }
24415 _res = NULL;
24416 done:
24417 D(p->level--);
24418 return _res;
24419}
24420
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024421// _tmp_151: star_targets '='
24422static void *
24423_tmp_151_rule(Parser *p)
24424{
24425 D(p->level++);
24426 if (p->error_indicator) {
24427 D(p->level--);
24428 return NULL;
24429 }
24430 void * _res = NULL;
24431 int _mark = p->mark;
24432 { // star_targets '='
24433 if (p->error_indicator) {
24434 D(p->level--);
24435 return NULL;
24436 }
24437 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24438 Token * _literal;
24439 expr_ty star_targets_var;
24440 if (
24441 (star_targets_var = star_targets_rule(p)) // star_targets
24442 &&
24443 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24444 )
24445 {
24446 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24447 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24448 goto done;
24449 }
24450 p->mark = _mark;
24451 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
24452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24453 }
24454 _res = NULL;
24455 done:
24456 D(p->level--);
24457 return _res;
24458}
24459
24460// _loop1_152: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024461static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024462_loop1_152_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024463{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024464 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024466 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024467 return NULL;
24468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024469 void *_res = NULL;
24470 int _mark = p->mark;
24471 int _start_mark = p->mark;
24472 void **_children = PyMem_Malloc(sizeof(void *));
24473 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024474 p->error_indicator = 1;
24475 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024476 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024477 return NULL;
24478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024479 ssize_t _children_capacity = 1;
24480 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024481 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024484 return NULL;
24485 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024486 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024487 NameDefaultPair* param_with_default_var;
24488 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024489 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024490 )
24491 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024492 _res = param_with_default_var;
24493 if (_n == _children_capacity) {
24494 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024495 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24496 if (!_new_children) {
24497 p->error_indicator = 1;
24498 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024499 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024500 return NULL;
24501 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024502 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024504 _children[_n++] = _res;
24505 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024507 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024508 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024511 if (_n == 0 || p->error_indicator) {
24512 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024513 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024514 return NULL;
24515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024516 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24517 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024518 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024519 p->error_indicator = 1;
24520 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024521 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024522 return NULL;
24523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024524 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24525 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024526 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024527 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024528 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024529}
24530
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024531// _loop1_153: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024532static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024533_loop1_153_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024534{
24535 D(p->level++);
24536 if (p->error_indicator) {
24537 D(p->level--);
24538 return NULL;
24539 }
24540 void *_res = NULL;
24541 int _mark = p->mark;
24542 int _start_mark = p->mark;
24543 void **_children = PyMem_Malloc(sizeof(void *));
24544 if (!_children) {
24545 p->error_indicator = 1;
24546 PyErr_NoMemory();
24547 D(p->level--);
24548 return NULL;
24549 }
24550 ssize_t _children_capacity = 1;
24551 ssize_t _n = 0;
24552 { // lambda_param_with_default
24553 if (p->error_indicator) {
24554 D(p->level--);
24555 return NULL;
24556 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024557 D(fprintf(stderr, "%*c> _loop1_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024558 NameDefaultPair* lambda_param_with_default_var;
24559 while (
24560 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24561 )
24562 {
24563 _res = lambda_param_with_default_var;
24564 if (_n == _children_capacity) {
24565 _children_capacity *= 2;
24566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24567 if (!_new_children) {
24568 p->error_indicator = 1;
24569 PyErr_NoMemory();
24570 D(p->level--);
24571 return NULL;
24572 }
24573 _children = _new_children;
24574 }
24575 _children[_n++] = _res;
24576 _mark = p->mark;
24577 }
24578 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024579 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24581 }
24582 if (_n == 0 || p->error_indicator) {
24583 PyMem_Free(_children);
24584 D(p->level--);
24585 return NULL;
24586 }
24587 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24588 if (!_seq) {
24589 PyMem_Free(_children);
24590 p->error_indicator = 1;
24591 PyErr_NoMemory();
24592 D(p->level--);
24593 return NULL;
24594 }
24595 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24596 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024597 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024598 D(p->level--);
24599 return _seq;
24600}
24601
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024602// _tmp_154: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024603static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024604_tmp_154_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024605{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024606 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024608 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024609 return NULL;
24610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024611 void * _res = NULL;
24612 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024613 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024615 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024616 return NULL;
24617 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024618 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024619 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024620 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024621 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024622 )
24623 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024624 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024625 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024626 goto done;
24627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024628 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024629 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024631 }
24632 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024633 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024634 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024635 return NULL;
24636 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024637 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024638 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024639 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024640 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024641 )
24642 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024643 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, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024651 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024652 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024653 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024654 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024655}
24656
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024657// _tmp_155: ':' | '**'
24658static void *
24659_tmp_155_rule(Parser *p)
24660{
24661 D(p->level++);
24662 if (p->error_indicator) {
24663 D(p->level--);
24664 return NULL;
24665 }
24666 void * _res = NULL;
24667 int _mark = p->mark;
24668 { // ':'
24669 if (p->error_indicator) {
24670 D(p->level--);
24671 return NULL;
24672 }
24673 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24674 Token * _literal;
24675 if (
24676 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24677 )
24678 {
24679 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
24680 _res = _literal;
24681 goto done;
24682 }
24683 p->mark = _mark;
24684 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
24685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24686 }
24687 { // '**'
24688 if (p->error_indicator) {
24689 D(p->level--);
24690 return NULL;
24691 }
24692 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
24693 Token * _literal;
24694 if (
24695 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24696 )
24697 {
24698 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
24699 _res = _literal;
24700 goto done;
24701 }
24702 p->mark = _mark;
24703 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
24704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24705 }
24706 _res = NULL;
24707 done:
24708 D(p->level--);
24709 return _res;
24710}
24711
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024712void *
24713_PyPegen_parse(Parser *p)
24714{
24715 // Initialize keywords
24716 p->keywords = reserved_keywords;
24717 p->n_keyword_lists = n_keyword_lists;
24718
24719 // Run parser
24720 void *result = NULL;
24721 if (p->start_rule == Py_file_input) {
24722 result = file_rule(p);
24723 } else if (p->start_rule == Py_single_input) {
24724 result = interactive_rule(p);
24725 } else if (p->start_rule == Py_eval_input) {
24726 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024727 } else if (p->start_rule == Py_func_type_input) {
24728 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024729 } else if (p->start_rule == Py_fstring_input) {
24730 result = fstring_rule(p);
24731 }
24732
24733 return result;
24734}
24735
24736// The end